1.层次查询语句 1.1.CONNECT BY 语法 1.2.CONNECT BY 示例 2.层次查询函数 2.1.SYS_CONNECT_BY_PATH 2.2.WMSYS.WM_CONCAT 2.3.Oracle 11g 新增的 PIVOT/UNPIVOT 3.总结 在我们的日常生活中,有很多数据集合都是有层次结构的,如企业的组织架构.政府机构.家族关系等.为满足对层次化数据的查询及格式化等需求,Oracle 从 9i 开始提供可按层次查询的子句和函数. 1.层次查询语句 1.1.CONNE…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 3.注释 3.1.表注释 3.2.字段注释 4.约束 4.1.添加主键约束 4.2.添加外键约束 4.3.添加唯一约束 4.4.添加 CHECK 约束 4.5.非空约束 4.6.禁用约束 & 启用约束 & 删除约束 5.索引 5.1.创建索引 5.2.修改索引 & 删除索引 6.总结…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 4.1.创建包/包体 4.2.调用包/包体 5.总结 5.1.删除数据库对象 5.2.编译数据库对象 除表以外,Oracle 还提供了视图.函数.存储过程.包/包体.序列.触发器.作业等对象,以满足数据库业务需要.对大多数应用程序而言,这些对象都只会少量用用,本文也只介绍创建和删除这些对象的基本 SQL 语法…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_JOB 包介绍 3.序列 3.1.创建序列 3.2.使用序列 & 删除序列 4.连接 4.1.创建 dblink 4.2.使用 dblink & 删除 dblink 5.总结 触发器 创建触发器 CREATE OR REPLACE TRIGGER trg_sync_staff90 -- 功能说…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期函数 3.1.日期函数简介 3.2.语法说明及案例 3.3.日期函数补充 4.总结 众所周知,Oracle 中系统函数特别多,貌似有好几百个,但实际上大部分函数对于普通应用而言,永远都用不到,本文将主要介绍 Oracle 中常见的数据类型函数. 字符函数 字符函数简介 据不完全统计,Oracle 中的字符函数…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.近似值函数 2.1.ROUND 2.2.TRUNC 3.正则函数 4.高级函数 5.总结 转换函数 Oracle 中的转换函数共计超过 20 个,但一大半都是做字节转换.日期(包括时间和时区)转换.LOB 类型转换.ROWID 类型转换等非常见转换的,光日期转换函数就占了 1/3.剩下几个函数当中有 4 个是比较实用的,也就…
1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 ROWNUM 函数实现分页功能 3.高级函数 3.1.高级函数简介 3.2.语法说明及案例 4.总结 聚合函数 常见的聚合函数有 COUNT.SUM.MAX.MIN.AVG 共 5 个,它们都可以对一组值执行聚合计算,并返回单个值.聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用.…
1.触发器理论 1.1.触发器的应用场景 1.2.触发器的类型 1.3.DML 触发器的触发顺序 2.触发器实战 2.1.创建触发器 2.1.1.创建 DML 触发器 2.1.2.创建 DDL 触发器 2.1.3.创建事件触发器 2.2.调试触发器 2.3.禁用和启用触发器 3.总结 1.触发器理论 1.1.触发器的应用场景 在 Oracle 中,事件或语句都能触发触发器,这也正是触发器的用武之地,具体来说有以下 4 类可以触发触发器的语句或事件: 1.DML 语句,用于修改特定表或视图中数据的…
1.类型 1.1.属性类型 1.2.记录类型 2.变量 2.1.变量类型 2.2.变量定义 2.3.变量赋值 3.结构 3.1.顺序结构 3.2.选择结构 3.3.循环结构 4.总结 1.类型 在<.Net程序员学用Oracle系列(5):三大数据类型>一文中详细地讲述了 Oracle 的基本数据类型,文中还提到,除基本数据类型之外,Oracle 还在语法上支持一些非固有数值类型. 事实上,Oracle 在语法上支持的数据类型远不止于此,Oracle 还支持一些复杂而强大的数据类型.如属性类型…
1.视图 1.1.创建.删除及调用普通视图 1.2.高级视图介绍 2.函数 2.1.系统函数介绍 2.2.创建.删除及调用自定义函数 3.存储过程 3.1.创建.修改及删除存储过程 3.2.调用存储过程 4.包/包体 4.1.创建包/包体 4.2.调用包/包体 4.3.删除包/包体 5.总结 Oracle 数据库提供了表.索引.视图.函数.存储过程.包/包体.序列.触发器.作业等数十种模式对象.实际上除表以外,其它对象都不是(关系型数据库)应用所必须的,大部分对象都是在某种特殊场景下才会被用到.…
1.触发器 2.作业 2.1.作业调度功能和应用 2.2.通过 DBMS_JOB 来调度作业 3.序列 3.1.创建序列 3.2.使用序列 & 删除序列 4.连接 4.1.创建连接 4.2.使用连接 & 删除连接 5.总结 1.触发器 可以把触发器看做是一种特殊的存储过程.触发器也是一种定义存放在数据字典中的模式对象,和存储过程一样,都包含声明和执行的 PL/SQL 块.触发器和存储过程最大的不同在于调用方式,存储过程是由用户或应用程序来调用和执行的,而触发器由 Oracle 系统来调用的…
本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇到一些不明所以的问题,为了工作不得不去上网查找解决方案.对开发人员来讲,数据库中绝大部分功能并不常用,用到的时候记不起来又得去查,这样就容易陷入反复查.反复忘的境地.好几次尴尬的时候我就在想要是有个实用的 SQL 备忘录就好了,最终我决定通过博客来记录,于是就有了本系列博文. 本人自认为对 SQL…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.创建说明 1.1.为什么要创建的测试环境? 1.2.了解 Oracle 实例的默认用户 2.创建环境 2.1.创建基本环境 2.2.要点2 2.3.要点3 基本说明 为什么要创建的测试环境? 我在构思本系列博客的时候,并没有想到要做什么准备:但当我写完六七篇稿子的时候,我忽然意识到如下的一系列问题: 有些跟时间有关的示例,我有用 SYSDATE 来演示,当读者把博文中的 SQL 语句拷贝到他的环境中运行时,SYSDATE 的值肯定…
1.DUAL 表 2.ROWID 类型 2.1.利用 ROWID 查询数据 2.2.利用 ROWID 更新数据 3.NULL 值 3.1.NULL 与空字符串 3.2.NULL 与函数 3.3.NULL 与索引 3.4.NULL 与 SQL 4.总结 1.DUAL 表 DUAL 是 Oracle 中的一个虚拟表,用来构成 SELECT 的语法规则,Oracle 系统保证 DUAL 里面永远只有一条记录.本人对"用来构成 SELECT 的语法规则"的理解是:由于 Oracle 中的 SE…
1.SQL 语句分类 1.1.分类方法及类型 1.2.数据定义语言 1.3.数据操纵语言 1.4.其它语句 2.动态 SQL 理论 2.1.动态 SQL 的用途 2.2.动态 SQL 的语法 2.3.绑定变量 3.动态 SQL 实战 3.1.封装执行 DML 的通用存储过程 3.2.批量编译数据库对象 3.3.统计数据库的总行数 4.总结 1.SQL 语句分类 1.1.分类方法及类型 在 Oracle 的官方手册<Oracle Database SQL Reference: Types of S…
1.同义词 2.Flashback 技术 3.连接字符串的写法 4.转义字符 & 特殊运算符 5.文件类型 6.查看参数 & 修改参数 7.AWR 工具 8.学习方法 & 学习资料 1.同义词 概念 同义词是数据库对象的一个别名,常用于简化对象访问及提高对象访问的安全性.在使用同义词时,Oracle 数据库自动将它翻译成对应模式对象的名字.与视图类似,同义词并不占用实际存储空间,只在数据字典中保存了同义词的定义.同义词可以指向的对象有表.视图.物化视图.序列.函数.存储过程.包.同…
.Net程序员学用Oracle系列(18):PLSQL Developer 攻略 .Net程序员学用Oracle系列(17):数据库管理工具(SQL Plus) .Net程序员学用Oracle系列(16):访问数据库(ODP.NET) .Net程序员学用Oracle系列(15):DUAL.ROWID.NULL .Net程序员学用Oracle系列(14):子查询.集合查询 .Net程序员学用Oracle系列(13):合并语句(MERGE) .Net程序员学用Oracle系列(12):增删改查 .N…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.Oracle 数据类型概述 2.字符类型 2.1.字符集 & NLS 2.2.常见的两种字符串 2.3.NCHAR & NVARCHAR2 3.数值类型 3.1.固有数值类型 3.2.非固有数值类型 3.3.性能考虑 4.日期类型 4.1.日期格式 4.2.常用日期类型及四个案例 5.总结 5.1.Oracle 与 SQL Server 数据类型比较 5.2.Oracle 数据类型使用感言 选择一个正确的数据类型,…
1..Net for Oracle 常见数据库驱动 1.1.微软提供的驱动 1.2.甲骨文提供的驱动 1.3.其它厂商提供的驱动 2.ODP.NET 常见问题分析 2.1.参数化问题 2.2.方法调用问题 2.3.取不到存储过程的输出参数值 3.总结 网上有大量诸如 C#/.Net 连接 Oracle 的几种方式之类的文章,无非也就是介绍几种驱动,而且具体内容几乎雷同.曾经我只是想找一个适合项目的访问 Oracle 的方法,结果迷失在浩瀚如烟的相似帖子中望洋兴叹.随着时间的推移,我逐渐理清了这里…
1.批量数据操作 1.1.批量生成数据 1.2.批量插入数据 2.批量生成脚本 3.生成数据字典 4.常见系统包 4.1.DBMS_OUTPUT 4.2.DBMS_RANDOM 4.3.其它系统包及常用方法 5.总结 1.批量数据操作 1.1.批量生成数据 生成 1-5 之间的整数 SELECT ROWNUM,LEVEL,LAG(LEVEL) OVER(ORDER BY LEVEL) lag,LEAD(LEVEL) OVER(ORDER BY LEVEL) lead FROM DUAL CONN…
1.视图 在实际操作过程中,本人发现 Oracle 视图定义有一个缺陷,就是不大方便注释,每次写好的注释执行之后再打开视图定义所有注释就全都没了.后来我发现把注释写到末尾就不会被清除,但这样总感觉乖乖的,而且我没见谁这么用过,我自己也很少这么用,目前还不知道有没有其它问题.创建视图示例: CREATE OR REPLACE VIEW v_staff2 AS SELECT t1.staff_id,t1.staff_name,t1.dept_code,t2.enum_name dept_name,t…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.概念说明 1.1.表空间 1.2.SCHEMA 1.3.用户 1.4.权限 2.表空间管理 2.1.创建表空间 2.2.监控表空间 2.3.调整表空间 2.4.删除表空间 3.用户管理 3.1.创建用户 3.2.修改用户密码和删除用户 3.3.用户授权 4.总结 对初学者和学习能力相对较差的人而言,深刻理解和熟练使用 Oracle 数据库是非常困难的一件事,因为 Oracle 从理论到实际都非常复杂.本人见过许多开发人员装 Ora…
1.数据库管理工具概述 2.SQL Plus 实用命令参考 2.1.连接/断开命令 2.2.执行 SQL 语句 2.3.执行 PL/SQL 语句 2.4.文件操作命令 2.5.修改用户密码 2.6.执行存储过程 2.7.其它命令 3.总结 1.数据库管理工具概述 顾名思义,数据库管理工具就是用来管理数据库的,一般分为命令行工具和图形化工具两类.平常大家说的数据库管理工具一般是指图形化工具.常见的每种数据库都有很多管理工具,还有支持多种数据库管理的工具,可谓是五花八门.一般数据库厂商都会提供针对自…
1.功能说明及使用技巧 1.1.对象浏览器 1.2.SQL 窗口 1.3.测试窗口 1.4.命令窗口 1.5.图表窗口 1.6.报告窗口 1.7.右键菜单 1.8.快速登录技巧 1.9.其它 2.总结 我是在用过几年 SSMS 之后才接触 PL/SQL Developer 的,一开始真的是非常不适应,感觉各种困难.各种麻烦.各种莫名其妙.当初我甚至怀疑过开发 PL/SQL Developer 的人是不是脑子有病,界面丑也就罢了,功能还那么难用,为啥不学学人家微软呢?哪怕是模仿一下子!然而,现实是…
1.静态数据字典 1.1.实用静态数据字典 1.2.运用静态数据字典 2.动态数据字典 2.1.实用动态性能视图 2.2.运用动态性能视图 3.死锁 3.1.定位死锁 3.2.解锁方法 3.3.强制删除已连接用户 4.总结 数据字典是 Oracle 中存放数据库信息的地方,用于描述数据.比如一个表的创建者信息.创建时间信息.所属表空间信息.用户访问权限信息等.数据字典由表和视图构成,数据字典中的表是不允许被直接访问的,但可以访问数据字典中的视图(前提是要有足够的权限). 数据字典中的表和视图属于…
1.游标 1.1.游标属性 1.2.隐式游标 1.3.游标处理及案例 2.异常 2.1.异常类别 2.2.异常函数 2.3.异常处理及案例 3.事务 3.1.开始事务.结束事务 3.2.自治事务 3.3.事务处理及案例 4.总结 1.游标 游标是一种数据处理机制,它提供了在结果集中依次浏览一行或多行数据的能力.游标就相当于是一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理.Oracle 中的游标分为显示游标和隐式游标两种. 1.1.游标属性 每个游标和游标变量都有四个属…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.书写规范 1.1.大小写风格 1.2.缩进风格 1.3.换行 1.4.其它 2.命名规范 2.1.数据库对象命名 2.2.变量命名 3.注释规范 4.语法规范 5.总结 5.1.代码的可读性比说明文档更重要 5.2.编程规范必不可少 作为一名使用 Oracle 的开发人员,在写这个系列博文之前,我原打算仅对常用 DDL 和 DML 做一个总结就算了.但在本人阅读<剑破冰山--Oracle开发艺术>第一章--<大话…
- 1.[**语法说明**](#segment1) - 1.1.[UPDATE 和 INSERT 可以只出现一个](#point11) - 1.2.[UPDATE 后面还可以再跟 WHERE](#point12) - 1.3.[UPDATE 和 INSERT 同时出现](#point13) - 1.4.[UPDATE 之后还可以再删除行](#point14) - 1.5.[将两个列的部分行值互换](#point15) - 2.[**常见雷区**](#segment2) - 2.1.[ORA-30…
1.四大转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.两大近似值函数 2.1.ROUND 2.2.TRUNC 3.正则函数 3.1.正则函数简介 3.2.语法说明及案例 4.总结 1.四大转换函数 Oracle 中的转换函数共计超过 20 个,但一大半都是做字节转换.日期(包括时间和时区)转换.LOB 类型转换.ROWID 类型转换等非常见转换的,光日期转换函数就占了 1/3.剩下几个函数当中有 4 个是比较实用也比较常用的,也就是三…
1.视图理论 1.1.视图的存储 1.2.视图的作用 1.3.视图的工作机制 1.4.视图的依赖性 1.5.可更新的连接视图 1.6.内联视图 2.物化视图 2.1.刷新物化视图 2.2.物化视图日志 2.3.管理物化视图 2.4.物化视图与索引 3.总结 我曾遇到一个项目的数据库中视图比表还要多很多(表和视图加起来上千个),几乎每个表都有对应的视图,而且有很多视图长得相似,比如有些视图关联的表一样,只是查询列表多或少了一两个字段.我敢断定,这就是因为一些水平低劣的开发人员看现有表或视图的数据不…