摘要:
本文继续探讨轮胎制造场景(已简化,实际会更复杂),一旦某台设备报警,最头疼的问题往往是:这台设备生产的半成品,最终流到了哪些成品轮胎上?又是谁组装的?传统做法靠多表自联接加 CONNECT BY 递归硬凑,SQL 又长又难维护。此时若在合适的场景下使用 Oracle 属性图,查询思路往往会更清晰。 阅读全文
随笔分类 - Oracle SQL
制造业质量追溯01:最小测试用例与 Oracle 层次查询演示
2026-09-23 07:25 by AlfredZhao, 121 阅读, 收藏,
摘要:
本文以大家都熟悉的汽车轮胎举例,在其对应的制造场景与供应链场景中(注:场景已简化,实际要更复杂),质量追溯是一个典型的多级父子结构问题。 追溯链条通常为:原材料(天然橡胶、炭黑、钢丝帘线批次)→ 胶料/半成品(混炼胶、胎面、胎圈)→ 成型轮胎成品(唯一 DOT 码/胎号)→ 销售客户。本文约定:正查 阅读全文
Oracle 排除非业务表:一份能直接抄的“全量过滤”SQL
2026-09-10 07:19 by AlfredZhao, 157 阅读, 收藏,
摘要:
在日常的 Oracle 开发与运维中,我们经常需要列出某个 Schema 下的“真实业务表”。但现实往往很骨感:只要库里启用过全文索引、物化视图、高级队列,甚至只是删过几张表,USER_TABLES 里就会混入一堆系统自动生成的辅助表。 笔者在整理清单时发现,仅靠过滤常见的 BIN$%(回收站)和 阅读全文
Unicode 码位数、UTF-8 字节数、中英文差异和 Oracle 长度别再混淆了
2026-08-21 06:37 by AlfredZhao, 234 阅读, 收藏,
摘要:
处理文本长度时,很多人最常见的困惑就是:听说中文要占 3 个字节?那英文单词怎么算的?Oracle 的 VARCHAR2 好像给的挺大,但貌似还没存那么多就报错长度不够存了? 其实,关键就在于要先区分清楚三种不同的“长度”代表的含义。 01 | Unicode 码位数 三种长度,含义有所不同,其中 阅读全文
SQL JOIN 写法:把多表关联条件写清楚
2026-08-16 07:26 by AlfredZhao, 199 阅读, 收藏,
摘要:
多表查询时,笔者习惯把关联关系放在 JOIN ... ON ... 中,把筛选条件放在 WHERE 中。这样阅读 SQL 时,表与表如何关联、最终筛选什么数据会更直观。 01 | 基础查询字段 SELECT u.username, ai.ai_score, ai.ai_remark, TO_CHAR 阅读全文
人机对话的新纪元:自然语言如何重塑数据查询体验
2025-10-31 08:30 by AlfredZhao, 202 阅读, 收藏,
摘要:
今年参与的AI项目中,NL2SQL(自然语言转换为 SQL)技术应用广泛,本文分享一些笔者在项目支持实践中的感悟,并讨论: 为什么SQL作为声明式语言,是LLM的关键预处理工具? NL2SQL的未来:如何让自然语言转化为可靠数据报告? 一、为什么机器很难理解“人话” 人类说话是模糊的。 比如我们说: 阅读全文
小知识:Oracle中的层次查询
2021-05-31 19:02 by AlfredZhao, 347 阅读, 收藏,
摘要:
使用Oracle中的start with .. connect by prior ..语句可以轻松实现。 下面通过scott用户下的emp来做演示,使用自己的一个19c测试环境,结果发现默认并没有scott用户及其测试表,我们需要使用自带脚本添加: @?/rdbms/admin/utlsampl.s 阅读全文
使用SQL计算宝宝每次吃奶的时间间隔 - Part3:保障数据安全
2019-12-26 22:47 by AlfredZhao, 867 阅读, 收藏,
摘要:
目前程序从功能上其实已经完全满足客户(当然我这里的客户都是指媳妇儿^_^)需求,具体可参考: "使用SQL计算宝宝每次吃奶的时间间隔 Part1:分析函数的使用" "使用SQL计算宝宝每次吃奶的时间间隔 Part2:提升程序易用性" 那么本篇 "使用SQL计算宝宝每次吃奶的时间间隔 Part3:保障 阅读全文
使用SQL计算宝宝每次吃奶的时间间隔 - Part2:提升程序易用性
2019-12-16 01:10 by AlfredZhao, 992 阅读, 收藏,
摘要:
本文是《 "使用SQL计算宝宝每次吃奶的时间间隔" 》的续篇,因为我工作繁忙,时常不能及时帮助媳妇儿记录,为了让不懂数据库的媳妇儿也可以自己用手机熟练操作。我继续做了一些修正和封装: 1.给媳妇儿的手机下载一个terminal终端软件termius,实现只需打开app就可以连接到环境; 2.跟媳妇儿 阅读全文
使用SQL计算宝宝每次吃奶的时间间隔 - Part1:分析函数的使用
2019-12-13 17:07 by AlfredZhao, 1411 阅读, 收藏,
摘要:
需求: 媳妇儿最近担心宝宝的吃奶时间不够规律,网上说是正常平均3小时喂奶一次,让我记录下每次的吃奶时间,分析下实际是否偏差很大,好在下次去医院复查时反馈给医生。 此外,还要注意有时候哭闹要吃奶,而实际只吃了两口便不吃了。这种情况要特殊标记下,如果不算这种情况的话,分析看是否正常。 环境: Oracl 阅读全文
使用dbms_profiler收集存储过程每步执行时间
2019-03-07 10:34 by AlfredZhao, 1033 阅读, 收藏,
摘要:
最近和优化团队的专家学到一个很有意义的内置包:dbms_profiler,专门用于分析Oracle存储过程中的各段代码的时间开销情况,从而快速找到性能瓶颈的步骤。 "1.sys创建dbms_profiler" "2.创建profiler用户,对应表和序列,赋权" "3.sys为表和序列创建publi 阅读全文
使用SQL语句如何实现条件判断
2018-09-28 23:15 by AlfredZhao, 26920 阅读, 收藏,
摘要:
客户需求是咨询如何用SQL结合decode函数实现条件判断,比如当某一列数值大于500,对应类型“大于500”;当某一列数值小于500,对应类型“小于500”。 实际decode函数无法实现这个功能,实现要用到case when,为此我构造一个简单的示例来直观演示: 测试包含case when的SQ 阅读全文
如何统计一段时间内但不包含周六日的所有日期
2018-01-10 09:06 by AlfredZhao, 816 阅读, 收藏,
摘要:
环境:Oracle 11g 客户咨询问题:统计一段时间内,但是把周六日排除,怎么写SQL? 我对SQL不擅长,特意请教SQL专家勇哥给出建议。在此一并感谢勇哥的解答,本文主要是详细记录下这个问题备忘。 答案: select dt, to_char(dt, 'day', 'nls_date_langu 阅读全文
Oracle存储过程中游标的简单使用
2017-06-07 17:46 by AlfredZhao, 29207 阅读, 收藏,
摘要:
存储过程中查询语句如何返回多行结果? 我们知道,如果存储过程中查询语句有多行结果输出,会报错:ORA 01422: exact fetch returns more than requested number of rows 若想让存储过程中的查询语句返回多行结果不报错,则需要使用游标来实现。 本例 阅读全文
Oracle PL/SQL随堂笔记总结
2015-01-04 22:00 by AlfredZhao, 3124 阅读, 收藏,
摘要:
1.pl/sql编程2.存储过程3.函数4.触发器5.包6.pl/sql基础 -定义并使用变量7.pl/sql的进阶8.oracle的视图1.pl/sql编程 1.理解oracle的pl/sql的概念 2.掌握pl/sql编程技术(过程、函数、触发器) pl/sql是标准sql语句的扩展 简介 1.... 阅读全文
Oracle存储过程获取YYYY-MM-DD的时间格式
2014-12-18 20:23 by AlfredZhao, 9580 阅读, 收藏,
摘要:
环境:Oracle 10g,11g问题重现:PL/SQL中命令窗口下,发现存储过程得到的时间格式不符合预期要求。SQL> select sysdate from dual;SYSDATE-----------2014-12-18Executed in 0 secondsSQL> set server... 阅读全文
浙公网安备 33010602011771号