社区
疑难问题
帖子详情
知道触发器名字,怎样获得它创建时的SQL?
xml120
2009-07-02 04:48:11
之前创建了一个触发器。
但是现在只能找到它的名字。
怎样获得当时创建它的SQL呢?
...全文
39
5
打赏
收藏
知道触发器名字,怎样获得它创建时的SQL?
之前创建了一个触发器。 但是现在只能找到它的名字。 怎样获得当时创建它的SQL呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
--小F--
2009-07-02
打赏
举报
回复
sp_helptext 对象名 正解
fcuandy
2009-07-02
打赏
举报
回复
sp_helptext 对象名
xml120
2009-07-02
打赏
举报
回复
比如说。我的触发器名字是trig_setstate。
怎么获得它的创建语句?
jinjazz
2009-07-02
打赏
举报
回复
或者在sql客户端中右建-create...
jinjazz
2009-07-02
打赏
举报
回复
sql dmo,sql smo
Microsoft
SQL
Server 2005技术内幕: T-SQ程序设计.pdf
SQL
Server 2005微软官方权威参考手册 是Inside Microsoft
SQL
Server 2005系列书中的第一本,
SQL
Server类的顶尖之作 全球公认
SQL
Server 2005经典著作,囊括大量鲜为人知的技术内幕,大师智慧、专家经验尽览无余。 本系列图书中文版得到了微软总部
SQL
Server组专家的高度重视,同
时
也得到了微软中国上海
SQL
Server全球技术支持中心的高度关注。 本书详细介绍了T-
SQL
的内部构造,包含了非常全面的编程参考。数据库开发人员和DBA可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的问题。本书涵盖了T-
SQL
程序设计的方方面面,如基于集合的编程技术、日期和
时
间相关的XML和CLR数据类型的使用、临
时
对象、T-
SQL
和CLR用户自定义函数、存储过程、
触发器
、事务和新的错误处理结构、应用并发模型支持并发用户、使用Service Broker来控制数据库应用程序中的异步处理等。 内容简介 本书是Inside Microsoft
SQL
Server 2005系列四本著作中的一本。它详细介绍了T-
SQL
的内部构造,包含了非常全面的编程参考。它提供了使用Transact-
SQL
(T-
SQL
)的专家级指导,T-
SQL
是用于
SQL
Server的最常见的也是功能最强大的编程语言。该书由Itzik Ben-Gan权威执笔,重点关注语言特性以及它们如何被
SQL
Server引擎解释和处理。 通过本书,你将深入了解T-
SQL
的高级用法,包括
触发器
、用户自定义函数、异常处理等。该书解释并比较了
SQL
Server 2000和
SQL
Server 2005在数据库开发相关问题上的解决方案,深入讨论了
SQL
Server 2005中新增的T-
SQL
编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解复杂的逻辑并掌握T-
SQL
。 本书适合于专业数据库开发者、BI开发者、DBA和以
SQL
Server作为后台数据库的一般应用程序开发者,读者可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。 作者简介 Itzik Ben-Gan是Solid Quality Learning的导师和创始人。从1999年开始,他一直是Microsoft
SQL
Server MVP(最有价值专家),并在全世界已经开展过无数次T-
SQL
查询、T-
SQL
优化和编程方面的培训。Itzik是Microsoft
SQL
Server方面几本著作的作者。他在
SQL
ServerMagazine和MSDN上发表了许多文章和白皮书。Itzik被邀请在许多会议上做报告,包括TechEd、DevWeek、世界各地的各种
SQL
用户组、PASS、
SQL
server Magazine Connections和Solid Quality Learning的会议。 从1992年开始,Itzik就一直致力于涉及各种数据库和计算机系统相关技术的多个课题。除了帮助顾客处理紧迫的要求、修复问题、优化数据库、教学和担任顾问以外,他还帮助开发人员和数据库管理员转变关系/基于集合的理念,改善他们编写代码的性能和可维护性。Itzik擅长T-
SQL
查询、查询优化、编程和内部原理,此外他还精通其他的数据库领域。1999年,Itzik创立以色列
SQL
Server和OLAP用户组,一直管理至今。 目录 序 前言 致谢 引言 第1章 数据类型相关的问题,XML和CLR UDT 1.1 DATETIME数据类型 DATETIME的存储格式
时
间处理 Datetime相关的查询问题 1.2 与字符相关的问题 模式匹配 区分大小写(Case-Sensitive)的筛选器 1.3 大型对象(Large Object,LOB) MAX 说明符 BULK行集提供程序 1.4 隐式转换(Implicit Conversion) 标量表达式 筛选表达式 1.5 基于CLR的用户定义类型 UDT理论简介 开发UDT 1.6 XML数据类型 关系数据库中的XML支持 什么
时
候应该使用XML代替关系表现形式? 数据库中的XML序列化对象 使用开放架构(Open Schema)的XML 作为存储过程参数的XML数据类型 Xquery修改语句 1.7 结论 第2章 临
时
表和表变量 2.1 临
时
表 局部临
时
表 全局临
时
表 2.2 表变量 限制条件 tempdb 范围和可见性 事务上下文 统计信息 2.3 tempdb相关的注意事项 2.4 表表达式 2.5 比较临
时
对象 2.6 综合练习——关系分区(Relational Division) 2.7 结论 第3章 游标 3.1 使用游标 3.2 游标开销 3.3 单独处理每一行 3.4 按顺序访问 自定义聚合 连续聚合 最大并发会话 匹配问题 3.5 结论 第4章 动态
SQL
第5章 视图 第6章 用户定义函数 第7章 存储过程 第8章
触发器
第9章 事务 第10章 错误处理 第11章 Service Broker 附录A CLR程序指南 A.1
创建
CLRUtilities数据库:
SQL
Server A.2 部署:Visual Studio A.3 部署和测试:Visual Studio 和
SQL
Server 索引 中英文术语对照表
SQL
Server数据库设计规范.txt
SQL
Server数据库设计规范 作者:佚名 厚朴教育来源:网络 点击数:1446 更新
时
间:2008-12-2 1 相关的设计规范: 1.1 采用有意义的字段名 尽可能地把字段描述的清楚些。当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说明性,但没人愿意键入这么长的
名字
,具体尺度就在你的把握中。每个单词的首个字母要求用大写!!!不要用下划线来连接每个单词. 1.2 遵守3NF 标准3NF 规定: A.表内的每一个值都只能被表达一次。 B.表内的每一行都应该被唯一的标识(有唯一键)。 C.表内不应该存储依赖于其他键的非键信息。 1.3 小心保留词 要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC 连接程序里有个表,其中就用了DESC 作为说明字段名。后果可想而知!DESC 是DESCENDING 缩写后的保留词。表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。 1.4 保持字段名和类型的一致性 在命
名字
段并为其指定数据类型的
时
候一定要保证一致性。假如字段在某个表中叫做"AgreeMentNumber",你就别在另一个表里把
名字
改成"ref1"。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。记住,你干完自己的活了,其他人还要用你的数据库呢。 2 命名规则: 2.1 数据库(Database)的定义 数据库名称 = 数据库内容标识(首字大写) 2.2 表(Table)的定义 命名应尽量反映存储的数据内容。 表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识 表名称 = 表名前缀 + 表内容标识(首字大写) 如ClientInfo相关联的一系的表以ci作为前缀, 即有表名:ciHistory,ciContact,ciBusiness 2.25 字段(Field)的定义 字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。 字段名称 = 字段类型前缀 + 字段内容标识(首字大写) 2.2视图名 视图的名称 = "vw" + 视图内容标识(首字大写) 如 vUserPerm 2.3
触发器
名 触发类型触发标识 ----------------------------------- Insert i Delete d Update u 触发名= "tr" + 触发标识 + 相应的表名 如:triClient,trdClient。 2.4存储过程名 存储过程功能存储过程功能前缀 ---------------------------------------- 添加a 更新u 删除d 查询或其它o 存储过程名称 = 存储过程功能前缀 + 存储过程内容标识(首字大写) 如 spoChkUserPerm 2.5变量名 每个单词的首个字母为大写,如@EmployeeName。 2.6命名中其他注意事项 禁止使用中文命名!!!!! 命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@)。 命名都采用英文字符,每个单词的首个字母要大写 2.7
SQL
语句的编写规范 数据库中存储过程和
触发器
中涉及大量的
SQL
语句,对
SQL
语句的编写规范如下: 关键字大写:在
SQL
语句的编写中,凡是
SQL
语句的关键字一律大写,如:SELECT、ORDER BY、 GROUP BY、 FROM、WHERE、 UPDATE、 INSERT INTO、 SET、 BEGIN、 END ...... 2.8 Rule ru+Rule标识 2.9 主键 pk+表名+主键标识 2.10 外键 fk+表名+主表名+外键标识 2.11 索引 idx+字段标识 2.12 Default df+Default标识 3 编程结构和描述
SQL
SERVER系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条
SQL
语句。批处理中的语句是作为一组去进行语法分析、编译和执行的。
触发器
、存储过程等数据对象则是将批处理永久化的方法。 3.1注释 注释可以包含在批处理中。在
触发器
、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。本规范建议: 1、注释以英文为主。 实际应用中,发现以中文注释的
SQL
语句版本在英文环境中不可用。为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。 2、注释尽可能详细、全面。
创建
每一数据对象前,应具体描述该对象的功能和用途。 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。 3、注释语法包含两种情况:单行注释、多行注释 单行注释:注释前有两个连字符(--)
My
SQL
触发器
数据库中的
触发器
是和表关联的特殊的存储过程,它可以在插入、删除或修改该表表中的数据
时
触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。 # 数据库
触发器
作用: 1) 安全性:可以基于...
数据库基础
第一部分 Oracle
SQL
*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24 §1.2.2 数据字典概念 25 §1.3
SQL
、
SQL
*Plus及 PL/
SQL
25 §1.3.1
SQL
和
SQL
*PLUS的差别 25 §1.3.2 PL/
SQL
语言 27 §1.4 登录到
SQL
*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用
SQL
*PLUS 附加命令简介 32 §1.5.1 登录到
SQL
*PLUS 32 §1.5.2 EXIT和QUIT 32 §1.5.3 DESCRIBE(显示表、视图结构) 33 §1.5.4 LIST(列出)命令 33 §1.5.5 Change(替换字符串)命令 34 §1.5.6 Append(追加字符串)命令 34 §1.5.7 Save保存当前缓冲区命令到文件 35 §1.5.8 GET将命令文件读到缓冲区 35 §1.5.9 SPOOL将信息记录到文件中 36 §1.5.10 再运行当前缓冲区的命令 36 §1.6 常用数据字典简介 37 §1.7 ORACLE数据类型 38 §1.8
SQL
语句基础 44 §1.8.1
SQL
语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用
SQL
Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2
SQL
中的单记录函数 50 §2.2.1 单记录字符函数 50 §2.2.2 单记录数字函数 56 §2.2.3 单记录日期函数 62 §2.2.4 单记录转换函数 65 §2.2.5 其它的单记录函数 68 §2.3
SQL
中的组函数 73 §2.3.1 多记录组函数 73 §2.3.2 带 GROUP BY 的计算 75 §2.3.3 用 HAVING 来限制分组的计算 75 §2.4 控制和格式化输出 76 §2.4.1 用 ORDER BY 子句来对结果进行排序 76 §2.4.2 用 BREAK 命令 来对结果进行排列 76 §2.4.3 用 COMPUTE 命令对结果进行格式化 79 §2.5 配置会话环境 82 §2.5.1 ARRAYSIZE(取回的行数) 82 §2.5.2 AUTOCOMMIT(自动提交) 83 §2.5.3 LINESIZE(行显示宽度) 83 §2.5.4 LONG(长类型显示字节数) 83 §2.5.5 PAGESIZE(页行数) 83 §2.5.6 PAUSE(暂停) 84 §2.5.7 SPACE(列间空格) 84 §2.5.8 Termout (启/停屏幕显示) 84 §2.5.9 ECHO (启/停命令显示) 84 §2.5.10 TRANSACTION (启动事务) 85 §2.5.11 SHOW ALL(列出所有参数) 85 §2.6 格式化输出 87 §2.6.1 一般数据的格式化输出 87 §2.6.2 日期的格式化输出 88 §2.7 加标题 89 §2.8 建立简单报告 90 §2.9 输入变量 91 第三章 表及索引的定义操作 94 §3.1 建立表结构 94 §3.1.1 建立表结构命令 94 §3.1.2 建立表结构例子 96 §3.1.3 建立临
时
表结构 97 §3.3 修改表结构 98 §3.3.1 修改表结构命令 98 §3.3.2 修改表结构例子 99 §3.3.3 删除表结构 101 §3.3.4 使用CHECK作限制约束 101 §3.3.5 使用UNRECOVERABLE
创建
表 102 §3.3.6 将表移动到新的数据段或新的表空间 102 §3.3.7 手工分配表的存储空间 104 §3.3.8 标记不使用的列和删除不使用的列 104 §3.3 主键 106 §3.3.1
创建
主键 106 §3.3.2 改变主键 109 §3.3.3 删除主键 109 §3.4 外部键 110 §3.4.1 建立外部键 110 §3.4.2 修改外部键 112 §3.4.3 删除外部键 112 §3.5 索引 112 §3.5.1 建立索引 112 §3.5.2 修改索引 114 §3.5.3 删除索引 115 §3.6 新索引类型 115 §3.6.1 基于函数的索引 115 §3.6.2 反向键索引 117 §3.6.3 索引组织表 117 §3.7 抽象数据类型的使用 118 §3.8 大数据类型的使用 119 §3.8.1 可用数据类型 119 §3.8.2 为LOB数据类型指定存储 120 §3.8.3 操作和检索LOB数据 121 §3.9 表和索引有关的数据字典 124 §3.9.1 表和索引数据字典 124 §3.9.2 数据字典查询例子 125 第四章 视图、同义词和序列 128 §4.1 视图 128 §4.1.1 使用视图来修改表中数据 128 §4.1.2
创建
一个新视图 128 §4.1.3 删除一个视图 130 §4.1.4 改变视图 131 §4.2 实体视图(MATERIALIZED VIEW) 131 §4.2.1
创建
实体视图 131 §4.2.2
创建
实体视图日志 137 §4.2.3 修改实体视图 139 §4.2.4 修改实体视图日志 141 §4.2.45 实体视图完整例子 142 §4.3 序号(sequence) 146 §4.3.1 建立序号 146 §4.3.2 修改序号 147 §4.3.3 使用序号 147 §4.3.4 删除序号 147 §4.4 同义词 148 §4.4.1 建立同义词 148 §4.4.2 删除同义词 149 §4.5 视图、同义词和序列有关的数据字典 149 第五章 簇与分区 150 §5.1 簇( cluster ) 150 §5.1.0 簇概念 150 §5.1.1 建立簇 152 §5.1.2 改变簇 155 §5.1.3 删除簇 155 §5.1.4 删除簇索引 156 §5.1.5 收集簇信息 156 §5.2 分区 158 §5.2.1 分区的优点 158 §5.2.2 分区的方法 159 §5.2.3
创建
表的分区 159 §5.2.3
创建
索引的分区 164 §5.2.4 维护表分区和索引分区 167 §5.3 簇与分区有关的数据字典 169 §5.3.1 分区、簇数据字典列表 169 §5.3.2 基本的分区、簇信息查询 169 第六章 使用
SQL
进行数据操作 170 §6.1 INSERT操作 170 §6.1.1 用文字插入操作 171 §6.1.2 用子查询插入操作 171 §6.2 UPDATE操作 172 §6.2.1 用文字更新操作 173 §6.2.2 用查询更新操作 173 §6.2.3 用相关子查询更新操作 174 §6.3 DETELE操作 174 §6.3.1 用delete删除全部记录的操作 174 §6.3.2 用delete有条件删除部分记录 175 §6.3.3 用delete分段删除大量记录 175 §6.4 insert、delete及update 的提交和撤消 176 §6.4.1 自动提交的设置 176 §6.4.2 保留点和撤消 177 第七章 复杂查询语句的使用 180 §7.1 复杂查询语句的使用 180 §7.1.1 相关子查询 180 §7.1.2 外连接 180 §7.1.3 自我连接 181 §7.1.4 UNION,INTERSECT及MINUS 182 §7.2
创建
复杂的视图 183 §7.2.1 分组视图 183 §7.2.2 合计视图 183 §7.2.3 组合视图 184 §7.3 家族树 184 §7.3.1 排除单一体和分枝 184 §7.3.2 遍历至根 185 §7.4 在from 中使用视图 187 第八章 一些高级的用法 188 §8.1 关于DECODE 188 §8.1.1 DECODE 中的if-then-else逻辑 188 §8.1.2 DECODE 的简单例子 188 §8.1.3 DECODE实现表的转置 189 §8.2 关于访问远程数据库 192 §8.2.1 数据库链接 192 §8.2.2 使用同义词
获得
本地透明 193 §8.2.3 在视图中使用user伪列 194 §8.2.4 使用COPY功能 195 §8.2.5 管理Oracle名称服务器 196 §8.3 关于上下文的使用 196 §8.3.1 设置上下文选项 196 §8.3.2 为上下文查询设置表 197 §8.3.3 优化文本索引 199 §8.4 关于维数(DIMENSION) 199 §8.4.1 CREATE DIMENSION语法 200 §8.4.2
创建
维的例子 201 第九章 安全管理 203 §9.1 CREATE USER 命令 203 §9.2 建立用户 204 §9.2.1 外部验证(Authenticated )用户 204 §9.2.2 全局(Globally)验证用户-企业验证 204 §9.3 ALTER USER 命令 205 §9.4 DROP USER 命令 205 §9.5 GRANT 命令与REVOKE 命令 206 §9.5.1 GRANT 命令 206 §9.5.2 REVOKE 命令 206 §9.6 权限和角色 207 §9.6.1 建立角色 207 §9.6.2 给角色授权 208 §9.6.3 授权角色给用户 209 §9.7 有关的数据字典 209 §9.7.1 与用户、角色与权限有关的数据字典 209 §9.7.2 查询数据字典信息 209 第十章 其它一些常见问题及技巧 212 §10.1 一些常见问题 212 §10.1.1 Oracle与2000年问题 212 §10.1.2 如何正确插入日期数据 213 §10.1.3 在查询中只返回满足条件的部分记录 214 §10.1.4 快速大量删除数据Truncate 215 §10.1.5 Rowid的使用 215 §10.1.6 在查询中不让记录被更新 217 §10.1.7 EXCEPTIONS(违反完整性)问题 217 §10.1.8 Not in和Not Exists 218 §10.1.9 关于 COPY命令 218 §10.1.10 列值为NULL情形的处理 219 §10.1.11 使用 product_user_file来限制用户使用产品 220 §10.2 常用技巧 221 §10.2.1 long 类型的查询 222 §10.2.2 如何确定执行
时
间 222 §10.2.3 如何终止用户会话 222 §10.2.4 用TRANSLATE对数据加密和解密 224 §10.2.5 如何用查询来修改数据 225 §10.2.6 如何产生
创建
用户的脚本 226 §10.2.7 如何产生
创建
表结构的脚本 227 §10.2.8 如何产生
创建
视图的脚本 229 §10.2.9 如何产生
创建
序号的脚本 229 §10.2.10 如何为用户
创建
公共同义词 229 第二部分 Oracle PL/
SQL
基础 231 第十一章 PL/
SQL
程序设计简介 231 §11.1 概述 231 §11.2
SQL
与PL/
SQL
231 §11.2.1 什么是PL/
SQL
? 231 §11.2.1 PL/
SQL
的好处 232 §11.2.1.1 有利于客户/服务器环境应用的运行 232 §11.2.1.2 适合于客户环境 232 §11.2.1.3 客户及服务器端的好处 232 §11.2.2 PL/
SQL
可用的
SQL
语句 233 §11.3 运行PL/
SQL
程序 233 §11.4 PL/
SQL
内置包 234 第十二章PL/
SQL
块结构和组成元素 235 §12.1 PL/
SQL
结构 235 §12.2 PL/
SQL
块 236 §12.3 标识符 236 §12.4 PL/
SQL
变量类型 237 §12.4.1 变量类型 237 §12.4.2 复合类型(记录和表) 238 §12.4.3 使用%ROWTYPE 240 §12.4.4 LOB类型 240 §12.4.5 用户定义的子类型 241 §12.4.6 数据类型的转换 243 §12.5 运算符和表达式(数据定义) 243 §12.5.1 关系运算符 243 §12.5.2 一般运算符 244 §12.5.3 逻辑运算符 244 §12.6 变量赋值 245 §12.6.1 字符及数字运算特点 245 §12.6.2 Boolean 赋值 245 §12.6.3 数据库赋值 245 §12.6.4 可转换的类型赋值 246 §12.7 变量作用范围以可见性 248 §12.8 注释 248 §12.9 简单例子 249 §12.9.1 简单数据插入例子 249 §12.9.2 简单数据删除例子 249 第十三章PL/
SQL
处理流程 250 §13.1 条件语句 250 §13.2 循环 251 §13.3 标号和GOTO 254 §13.4 NULL 语句 255 第十四章 光标的使用 255 §14.1 光标概念 255 §14.1.1 处理显式光标 255 §14.1.2 处理隐式光标 257 §14.2 光标循环 258 §14.2.1 简单循环 258 §14.2.2 WHILE循环 259 §14.2.3 光标 FOR 循环 260 §14.2.4 关于NO_DATA_FOUND和%NOTFOUND 260 §14.2.5 SELECT FOR UPDATE 光标 261 §14.3 光标变量 262 §14.3.1 声明光标变量 262 §14.3.2 为光标变量分配存储空间 262 §14.3.3 打开光标变量 262 §14.3.4 关闭光标变量 262 §14.3.5 光标变量例子 263 §14.3.6 光标变量 265 第十五章 错误处理 267 §15.1 异常处理概念 267 §15.1.1 预定义的异常处理 267 §15.1.2 触发异常情态 268 §15.1.3 处理异常情态 269 §15.1.4 用户定义的异常处理 270 §15.2 异常情态传播 271 §15.2.1 在执行部分引发异常情态 271 §15.2.2 在声明部分引发异常情态 272 §15.3 异常处理编程 273 §15.4 在 PL/
SQL
中使用
sql
code,
sql
errm 273 第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1
创建
过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑存储过程源码 279 §16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3
创建
函数 281 §16.4 过程和函数中的例外处理 282 §16.4.1 使用系统定义的例外处理 282 §16.4.1.1 没有例外处理的缺点 283 §16.4.1.2 使用预定义的例外处理 283 §16.4.2 使用用户定义的例外处理+ 286 §16.4.2.1 定义的用户例外处理 286 §16.4.2.2 使用户EXCEPTION_INIT处理 286 §16.4.2.3 使用户raise_application_error处理 286 第十七章
创建
包和使用包 287 §17.1 引言 287 §17.2 包的定义 288 §17.3 包的开发步骤 289 §17.4 包的头部说明 289 §17.5 包体的说明 290 §17.6 删除过程、函数和包 293 §17.7 包的管理 293 §17.7.1 包有关的数据字典 293 §17.7.2 包中无效对象的查询和编译 294 §17.7.3 包源代码的导出 296 第十八章
触发器
297 §18.1
触发器
类型 297 §18.1.1 DML
触发器
297 §18.1.2 替代
触发器
298 §18.1.3 系统
触发器
298 §18.2
创建
触发器
298 §18.2.1
创建
DML
触发器
299 §18.2.2
创建
替代(Instead_of)
触发器
300 §18.2.3
创建
系统
触发器
300 §18.2.4
触发器
触发次序 302 §18.2.5 使用
触发器
谓词 302 §18.3 删除和使能
触发器
303 §18.4
创建
触发器
的限制 304 §18.5 变异表 305 §18.5.1 变异表典型例子 307 §18.5.2 变异表错误的处理 308 §18.6
触发器
数据字典与管理 309 §18.6.1
触发器
数据字典 309 §18.6.2 无效
触发器
的编译 310 第十九章 外部存储过程 311 §19.1 什么是外部例程 311 §19.2 C外部例程 311 §19.2.1 调用步骤 312 §19.2.2 参数映射( 转换) 317 第二十章 会话间通信 319 §20.1 DBMS_PIPE 319 §20.1.1 发送消息 319 §20.1.2 接收消息 320 §20.1.3 示例 321 §20.2 DBMS_ALERT 340 §20.2.1 使用警告 341 §20.2.2 警告所用的各个过程 341 §20.2.3 警告例子 342 §20.3 DBMS_PIPE 和 DBMS_ALERT 343 第二十一章 数据库作业和文件I/O 344 §21.1 数据库作业 344 §21.1.1后台进程 344 §21.1.2运行作业 344 §21.1.3失效作业 346 §21.1.4删除作业 347 §21.1.5修改作业参数 348 §21.1.6与作业参数有关数据字典 350 §21.2 文件I/O 350 §21.2.1 安全性 351 §21.2.2 打开和关闭文件 351 §21.2.3文件输出 353 §21.2.3文件输入 354 §21.2.4文件操作例子 354 第二十二章 在PL/
SQL
使用
SQL
语句 355 §22.1在PL/
SQL
使用DML语句 355 §22.2 伪列 357 §22.3 GRANT、REVOKE 和权限 358 §22.3.1 对象和系统权限 358 §22.3.2 GRANT和REVOKE命令语法 358 §22.4 事务控制 359 §22.4.1 COMMIT 和 ROLLBACK 359 §22.4.2 保留点 SAVEPOINT 360 §22.5 在PL/
SQL
中使用
SQL
函数 361 §22.5.1 错误处理函数 362 §22.5.2 数字函数 362 第二十三章 PL/
SQL
程序的测试和调试 363 §23.1 问题诊断 363 §23.1.1 调试指南 363 §23.1.2 显示在编译产生的错误 363 §23.2 插入测试表 364 §23.3 DBMS_OUTPUT的使用 364 §23.4 PL/
SQL
调试器 365 §23.4.1 Procedure Builder调试器 365 §23.4.2
SQL
-Station调试器 366 §23.5 程序设计方法 366 §23.5.1 模块化程序设计 366 §23.5.2 自顶向下设计 366 §23.5.3 数据抽象 366 第二十四章 性能及其它问题 367 §24.1共享池 367 §24.1.1 共享池工作原理 367 §24.1.2 估计共享池大小 368 §24.1.3 将PL/
SQL
驻留在共享池中 369 §24.2
SQL
语句调整 370 §24.3 网络问题 373 §24.4 PL/
SQL
wrap(转换器) 373 §24.4.1 运行 wrap实用程序 373 §24.4.2 输入和输出文件 374 §24.5 DBMS_OUTPUT的使用 374 第二十五章 对象类型 376 §25.1 对象类型定义 376 §25.1.1 定义对象类型头 376 §25.1.2 定义对象类型体 376 §25.1.3 定义对象类型例子 377 §25.1.4 初始化对象类型 378 §25.1.5 使用对象类型 379 §25.2 对象类型修改 381 §25.3 对象类型删除 381 第二十六章 动态PL/
SQL
简介 383 §26.1 概述 383 §26.1.1 静态
SQL
和动态
SQL
383 §26.1.2 用DBMS_
SQL
包实现动态 383 §26.1.3 用本地动态
SQL
实现动态 385 §26.2 使用DBMS_
SQL
进行动态编程 385 §26.2.1 执行DML、DDL及Alter session语句 385 §26.2.2 示例 388 §26.2.3 执行DDL 语句 389 §26.2.4 执行PL/
SQL
块 390 §26.4 本地动态
SQL
391 §26.4.1使用EXECUTE IMMEDIATE语句 391 §26.4.2向后兼容情况 392 §26.4.3指定参数模式 393 第二十七章 LOB和DBMS_LOB包简介 394 §27.1 LOB类型一般使用 394 §27.1.1 LOB类型存储 395 §27.1.2 临
时
LOB类型 395 §27.1.3 LOB类型的接口 396 §27.2 一般LOB表与数据加载 396 §27.2.1 建立包含LOB的表 396 §27.2.2 用EMPTY_CLOB或EMPTY_BLOB插入LOB 398 §27.2.3 一般的LOB插入 399 §27.3 内部LOB和DBMS_LOB的使用 399 §27.3.1 APPEND过程 400 §27.3.2 CLOSE过程 401 §27.3.3 COMPARE函数 401 §27.3.4 COPY过程 403 §27.3.5 ERASE过程 405 §27.3.6 GETCHUNKSIZE函数 406 §27.3.7 GETLENGTH函数 407 §27.3.8 INSTR函数 408 §27.3.9 READ过程 409 §27.3.10 SUBSTR函数 410 §27.3.11 WRITE过程 411 §27.3.12 WRITEAPPEND过程 412 §27.4临
时
LOB 413 §27.4.1 建立临
时
LOB 413 §27.4.2 查看临
时
LOB 414 §27.4.3 释放临
时
LOB 414 §27.4.4 从BFILE中加载临
时
LOB 415 §27.4.5 查看临
时
LOB是否打开 415 §27.4.6 显示临
时
LOB数据 416 §27.4.7 从临
时
LOB读数据 417 §27.4.8 从临
时
LOB读部分数据 418 §27.4.9 比较两个临
时
LOB数据 419 §27.4.10 查看临
时
LOB模式的存在 420 §27.4.11 得到临
时
LOB的长度 421 §27.4.12 拷贝部分临
时
LOB数据 421 §27.4.13 为临
时
LOB拷贝位置 422 §27.4.14 加临
时
LOB到另外的LOB 423 §27.4.15 写追加到临
时
LOB 424 §27.4.16 写数据到临
时
LOB 424 §27.4.17 修理临
时
LOB数据 425 §27.4.18 删除临
时
LOB数据 426 §27.5外部LOB (BFILE) 426 §27.5.1 BFILE目录指定 426 §27.5.2 建立包括BFILE列的表 427 §27.5.3 用BFILENAME()插入数据 428 §27.5.4 从另外表选择BFILE插入数据 429 §27.5.5 用初始化BFILE位置来插入数据BFILE行 429 §27.5.6 动态加载数据BFILE的表 429 §27.5.7 用BFILE数据来加载LOB数据 430 §27.5.8 用FILEOPEN打开BFILE 431 §27.5.9 用OPEN打开BFILE 431 §27.5.10 用FILEISOPEN看BFILE是否打开 431 §27.5.11 用ISOPEN看BFILE是否打开 432 §27.5.12 显示BFILE 432 §27.5.13 从BFILE中读数据 433 §27.5.14 读部分BFILE 433 §27.5.15 比较BFILE 434 §27.5.16 判断BFILE是否存在模式 434 §27.5.17 判断BFILE是否存在 435 §27.5.18 得到BFILE长度 435 §27.5.19 拷贝BFILE的LOB位置 436 §27.5.20 得到目录别名和文件
名字
436 §27.5.21 用初始化BFILE位置更新BFILE 437 §27.5.22 用FILECLOSE关闭BFILE 437 §27.5.23 用CLOSE关闭BFILE 437 §27.5.24 用CLOSEALL关闭所有BFILE 438 §27.5.25 用DELETE等删除BFILE数据 438 §27.6 使用
SQL
*loader加载LOB 438 §27.6.1 加载图象和文本文件 438 §27.6.2 加载文本文件 439 第二十八章 PL/
SQL
编程技巧 442 §28.1用
触发器
实现日期格式的自动设置 442 §28.2如何避免TOO_MANY_ROWS错误 443 §28.3如何解决TOO_MANY_ROWS问题 446 §28.4如何在PL/
SQL
中使用数组 447 §28.5如何使用
触发器
完成数据复制 448 §28.6在PL/
SQL
中实现Truncate 449 §28.7如何导出存储过程、
触发器
的代码 450 附录A:
SQL
及
SQL
*PLUS 命令参考 459
Oracle8i_9i数据库基础
第一部分 Oracle
SQL
*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24 §1.2.2 数据字典概念 25 §1.3
SQL
、
SQL
*Plus及 PL/
SQL
25 §1.3.1
SQL
和
SQL
*PLUS的差别 25 §1.3.2 PL/
SQL
语言 27 §1.4 登录到
SQL
*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用
SQL
*PLUS 附加命令简介 32 §1.5.1 登录到
SQL
*PLUS 32 §1.5.2 EXIT和QUIT 32 §1.5.3 DESCRIBE(显示表、视图结构) 33 §1.5.4 LIST(列出)命令 33 §1.5.5 Change(替换字符串)命令 34 §1.5.6 Append(追加字符串)命令 34 §1.5.7 Save保存当前缓冲区命令到文件 35 §1.5.8 GET将命令文件读到缓冲区 35 §1.5.9 SPOOL将信息记录到文件中 36 §1.5.10 再运行当前缓冲区的命令 36 §1.6 常用数据字典简介 37 §1.7 ORACLE数据类型 38 §1.8
SQL
语句基础 44 §1.8.1
SQL
语句所用符号 44 §1.8.2 简单select 查询 45 §1.9 伪列及伪表 46 §1.10 使用
SQL
Worksheet工作 46 第二章 查询基础 50 §2.1 SELECT语句 50 §2.2
SQL
中的单记录函数 50 §2.2.1 单记录字符函数 50 §2.2.2 单记录数字函数 56 §2.2.3 单记录日期函数 62 §2.2.4 单记录转换函数 65 §2.2.5 其它的单记录函数 68 §2.3
SQL
中的组函数 73 §2.3.1 多记录组函数 73 §2.3.2 带 GROUP BY 的计算 75 §2.3.3 用 HAVING 来限制分组的计算 75 §2.4 控制和格式化输出 76 §2.4.1 用 ORDER BY 子句来对结果进行排序 76 §2.4.2 用 BREAK 命令 来对结果进行排列 76 §2.4.3 用 COMPUTE 命令对结果进行格式化 79 §2.5 配置会话环境 82 §2.5.1 ARRAYSIZE(取回的行数) 82 §2.5.2 AUTOCOMMIT(自动提交) 83 §2.5.3 LINESIZE(行显示宽度) 83 §2.5.4 LONG(长类型显示字节数) 83 §2.5.5 PAGESIZE(页行数) 83 §2.5.6 PAUSE(暂停) 84 §2.5.7 SPACE(列间空格) 84 §2.5.8 Termout (启/停屏幕显示) 84 §2.5.9 ECHO (启/停命令显示) 84 §2.5.10 TRANSACTION (启动事务) 85 §2.5.11 SHOW ALL(列出所有参数) 85 §2.6 格式化输出 87 §2.6.1 一般数据的格式化输出 87 §2.6.2 日期的格式化输出 88 §2.7 加标题 89 §2.8 建立简单报告 90 §2.9 输入变量 91 第三章 表及索引的定义操作 94 §3.1 建立表结构 94 §3.1.1 建立表结构命令 94 §3.1.2 建立表结构例子 96 §3.1.3 建立临
时
表结构 97 §3.3 修改表结构 98 §3.3.1 修改表结构命令 98 §3.3.2 修改表结构例子 99 §3.3.3 删除表结构 101 §3.3.4 使用CHECK作限制约束 101 §3.3.5 使用UNRECOVERABLE
创建
表 102 §3.3.6 将表移动到新的数据段或新的表空间 102 §3.3.7 手工分配表的存储空间 104 §3.3.8 标记不使用的列和删除不使用的列 104 §3.3 主键 106 §3.3.1
创建
主键 106 §3.3.2 改变主键 109 §3.3.3 删除主键 109 §3.4 外部键 110 §3.4.1 建立外部键 110 §3.4.2 修改外部键 112 §3.4.3 删除外部键 112 §3.5 索引 112 §3.5.1 建立索引 112 §3.5.2 修改索引 114 §3.5.3 删除索引 115 §3.6 新索引类型 115 §3.6.1 基于函数的索引 115 §3.6.2 反向键索引 117 §3.6.3 索引组织表 117 §3.7 抽象数据类型的使用 118 §3.8 大数据类型的使用 119 §3.8.1 可用数据类型 119 §3.8.2 为LOB数据类型指定存储 120 §3.8.3 操作和检索LOB数据 121 §3.9 表和索引有关的数据字典 124 §3.9.1 表和索引数据字典 124 §3.9.2 数据字典查询例子 125 第四章 视图、同义词和序列 128 §4.1 视图 128 §4.1.1 使用视图来修改表中数据 128 §4.1.2
创建
一个新视图 128 §4.1.3 删除一个视图 130 §4.1.4 改变视图 131 §4.2 实体视图(MATERIALIZED VIEW) 131 §4.2.1
创建
实体视图 131 §4.2.2
创建
实体视图日志 137 §4.2.3 修改实体视图 139 §4.2.4 修改实体视图日志 141 §4.2.45 实体视图完整例子 142 §4.3 序号(sequence) 146 §4.3.1 建立序号 146 §4.3.2 修改序号 147 §4.3.3 使用序号 147 §4.3.4 删除序号 147 §4.4 同义词 148 §4.4.1 建立同义词 148 §4.4.2 删除同义词 149 §4.5 视图、同义词和序列有关的数据字典 149 第五章 簇与分区 150 §5.1 簇( cluster ) 150 §5.1.0 簇概念 150 §5.1.1 建立簇 152 §5.1.2 改变簇 155 §5.1.3 删除簇 155 §5.1.4 删除簇索引 156 §5.1.5 收集簇信息 156 §5.2 分区 158 §5.2.1 分区的优点 158 §5.2.2 分区的方法 159 §5.2.3
创建
表的分区 159 §5.2.3
创建
索引的分区 164 §5.2.4 维护表分区和索引分区 167 §5.3 簇与分区有关的数据字典 169 §5.3.1 分区、簇数据字典列表 169 §5.3.2 基本的分区、簇信息查询 169 第六章 使用
SQL
进行数据操作 170 §6.1 INSERT操作 170 §6.1.1 用文字插入操作 171 §6.1.2 用子查询插入操作 171 §6.2 UPDATE操作 172 §6.2.1 用文字更新操作 173 §6.2.2 用查询更新操作 173 §6.2.3 用相关子查询更新操作 174 §6.3 DETELE操作 174 §6.3.1 用delete删除全部记录的操作 174 §6.3.2 用delete有条件删除部分记录 175 §6.3.3 用delete分段删除大量记录 175 §6.4 insert、delete及update 的提交和撤消 176 §6.4.1 自动提交的设置 176 §6.4.2 保留点和撤消 177 第七章 复杂查询语句的使用 180 §7.1 复杂查询语句的使用 180 §7.1.1 相关子查询 180 §7.1.2 外连接 180 §7.1.3 自我连接 181 §7.1.4 UNION,INTERSECT及MINUS 182 §7.2
创建
复杂的视图 183 §7.2.1 分组视图 183 §7.2.2 合计视图 183 §7.2.3 组合视图 184 §7.3 家族树 184 §7.3.1 排除单一体和分枝 184 §7.3.2 遍历至根 185 §7.4 在from 中使用视图 187 第八章 一些高级的用法 188 §8.1 关于DECODE 188 §8.1.1 DECODE 中的if-then-else逻辑 188 §8.1.2 DECODE 的简单例子 188 §8.1.3 DECODE实现表的转置 189 §8.2 关于访问远程数据库 192 §8.2.1 数据库链接 192 §8.2.2 使用同义词
获得
本地透明 193 §8.2.3 在视图中使用user伪列 194 §8.2.4 使用COPY功能 195 §8.2.5 管理Oracle名称服务器 196 §8.3 关于上下文的使用 196 §8.3.1 设置上下文选项 196 §8.3.2 为上下文查询设置表 197 §8.3.3 优化文本索引 199 §8.4 关于维数(DIMENSION) 199 §8.4.1 CREATE DIMENSION语法 200 §8.4.2
创建
维的例子 201 第九章 安全管理 203 §9.1 CREATE USER 命令 203 §9.2 建立用户 204 §9.2.1 外部验证(Authenticated )用户 204 §9.2.2 全局(Globally)验证用户-企业验证 204 §9.3 ALTER USER 命令 205 §9.4 DROP USER 命令 205 §9.5 GRANT 命令与REVOKE 命令 206 §9.5.1 GRANT 命令 206 §9.5.2 REVOKE 命令 206 §9.6 权限和角色 207 §9.6.1 建立角色 207 §9.6.2 给角色授权 208 §9.6.3 授权角色给用户 209 §9.7 有关的数据字典 209 §9.7.1 与用户、角色与权限有关的数据字典 209 §9.7.2 查询数据字典信息 209 第十章 其它一些常见问题及技巧 212 §10.1 一些常见问题 212 §10.1.1 Oracle与2000年问题 212 §10.1.2 如何正确插入日期数据 213 §10.1.3 在查询中只返回满足条件的部分记录 214 §10.1.4 快速大量删除数据Truncate 215 §10.1.5 Rowid的使用 215 §10.1.6 在查询中不让记录被更新 217 §10.1.7 EXCEPTIONS(违反完整性)问题 217 §10.1.8 Not in和Not Exists 218 §10.1.9 关于 COPY命令 218 §10.1.10 列值为NULL情形的处理 219 §10.1.11 使用 product_user_file来限制用户使用产品 220 §10.2 常用技巧 221 §10.2.1 long 类型的查询 222 §10.2.2 如何确定执行
时
间 222 §10.2.3 如何终止用户会话 222 §10.2.4 用TRANSLATE对数据加密和解密 224 §10.2.5 如何用查询来修改数据 225 §10.2.6 如何产生
创建
用户的脚本 226 §10.2.7 如何产生
创建
表结构的脚本 227 §10.2.8 如何产生
创建
视图的脚本 229 §10.2.9 如何产生
创建
序号的脚本 229 §10.2.10 如何为用户
创建
公共同义词 229 第二部分 Oracle PL/
SQL
基础 231 第十一章 PL/
SQL
程序设计简介 231 §11.1 概述 231 §11.2
SQL
与PL/
SQL
231 §11.2.1 什么是PL/
SQL
? 231 §11.2.1 PL/
SQL
的好处 232 §11.2.1.1 有利于客户/服务器环境应用的运行 232 §11.2.1.2 适合于客户环境 232 §11.2.1.3 客户及服务器端的好处 232 §11.2.2 PL/
SQL
可用的
SQL
语句 233 §11.3 运行PL/
SQL
程序 233 §11.4 PL/
SQL
内置包 234 第十二章PL/
SQL
块结构和组成元素 235 §12.1 PL/
SQL
结构 235 §12.2 PL/
SQL
块 236 §12.3 标识符 236 §12.4 PL/
SQL
变量类型 237 §12.4.1 变量类型 237 §12.4.2 复合类型(记录和表) 238 §12.4.3 使用%ROWTYPE 240 §12.4.4 LOB类型 240 §12.4.5 用户定义的子类型 241 §12.4.6 数据类型的转换 243 §12.5 运算符和表达式(数据定义) 243 §12.5.1 关系运算符 243 §12.5.2 一般运算符 244 §12.5.3 逻辑运算符 244 §12.6 变量赋值 245 §12.6.1 字符及数字运算特点 245 §12.6.2 Boolean 赋值 245 §12.6.3 数据库赋值 245 §12.6.4 可转换的类型赋值 246 §12.7 变量作用范围以可见性 248 §12.8 注释 248 §12.9 简单例子 249 §12.9.1 简单数据插入例子 249 §12.9.2 简单数据删除例子 249 第十三章PL/
SQL
处理流程 250 §13.1 条件语句 250 §13.2 循环 251 §13.3 标号和GOTO 254 §13.4 NULL 语句 255 第十四章 光标的使用 255 §14.1 光标概念 255 §14.1.1 处理显式光标 255 §14.1.2 处理隐式光标 257 §14.2 光标循环 258 §14.2.1 简单循环 258 §14.2.2 WHILE循环 259 §14.2.3 光标 FOR 循环 260 §14.2.4 关于NO_DATA_FOUND和%NOTFOUND 260 §14.2.5 SELECT FOR UPDATE 光标 261 §14.3 光标变量 262 §14.3.1 声明光标变量 262 §14.3.2 为光标变量分配存储空间 262 §14.3.3 打开光标变量 262 §14.3.4 关闭光标变量 262 §14.3.5 光标变量例子 263 §14.3.6 光标变量 265 第十五章 错误处理 267 §15.1 异常处理概念 267 §15.1.1 预定义的异常处理 267 §15.1.2 触发异常情态 268 §15.1.3 处理异常情态 269 §15.1.4 用户定义的异常处理 270 §15.2 异常情态传播 271 §15.2.1 在执行部分引发异常情态 271 §15.2.2 在声明部分引发异常情态 272 §15.3 异常处理编程 273 §15.4 在 PL/
SQL
中使用
sql
code,
sql
errm 273 第十六章 存储过程和函数 276 §16.1 引言 276 §16.2 存储过程 276 §16.2.1
创建
过程 276 §16.2.2 使用过程 278 §16.2.3 开发存储过程步骤 279 §16.2.3.1 编辑存储过程源码 279 §16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3
创建
函数 281 §16.4 过程和函数中的例外处理 282 §16.4.1 使用系统定义的例外处理 282 §16.4.1.1 没有例外处理的缺点 283 §16.4.1.2 使用预定义的例外处理 283 §16.4.2 使用用户定义的例外处理+ 286 §16.4.2.1 定义的用户例外处理 286 §16.4.2.2 使用户EXCEPTION_INIT处理 286 §16.4.2.3 使用户raise_application_error处理 286 第十七章
创建
包和使用包 287 §17.1 引言 287 §17.2 包的定义 288 §17.3 包的开发步骤 289 §17.4 包的头部说明 289 §17.5 包体的说明 290 §17.6 删除过程、函数和包 293 §17.7 包的管理 293 §17.7.1 包有关的数据字典 293 §17.7.2 包中无效对象的查询和编译 294 §17.7.3 包源代码的导出 296 第十八章
触发器
297 §18.1
触发器
类型 297 §18.1.1 DML
触发器
297 §18.1.2 替代
触发器
298 §18.1.3 系统
触发器
298 §18.2
创建
触发器
298 §18.2.1
创建
DML
触发器
299 §18.2.2
创建
替代(Instead_of)
触发器
300 §18.2.3
创建
系统
触发器
300 §18.2.4
触发器
触发次序 302 §18.2.5 使用
触发器
谓词 302 §18.3 删除和使能
触发器
303 §18.4
创建
触发器
的限制 304 §18.5 变异表 305 §18.5.1 变异表典型例子 307 §18.5.2 变异表错误的处理 308 §18.6
触发器
数据字典与管理 309 §18.6.1
触发器
数据字典 309 §18.6.2 无效
触发器
的编译 310 第十九章 外部存储过程 311 §19.1 什么是外部例程 311 §19.2 C外部例程 311 §19.2.1 调用步骤 312 §19.2.2 参数映射( 转换) 317 第二十章 会话间通信 319 §20.1 DBMS_PIPE 319 §20.1.1 发送消息 319 §20.1.2 接收消息 320 §20.1.3 示例 321 §20.2 DBMS_ALERT 340 §20.2.1 使用警告 341 §20.2.2 警告所用的各个过程 341 §20.2.3 警告例子 342 §20.3 DBMS_PIPE 和 DBMS_ALERT 343 第二十一章 数据库作业和文件I/O 344 §21.1 数据库作业 344 §21.1.1后台进程 344 §21.1.2运行作业 344 §21.1.3失效作业 346 §21.1.4删除作业 347 §21.1.5修改作业参数 348 §21.1.6与作业参数有关数据字典 350 §21.2 文件I/O 350 §21.2.1 安全性 351 §21.2.2 打开和关闭文件 351 §21.2.3文件输出 353 §21.2.3文件输入 354 §21.2.4文件操作例子 354 第二十二章 在PL/
SQL
使用
SQL
语句 355 §22.1在PL/
SQL
使用DML语句 355 §22.2 伪列 357 §22.3 GRANT、REVOKE 和权限 358 §22.3.1 对象和系统权限 358 §22.3.2 GRANT和REVOKE命令语法 358 §22.4 事务控制 359 §22.4.1 COMMIT 和 ROLLBACK 359 §22.4.2 保留点 SAVEPOINT 360 §22.5 在PL/
SQL
中使用
SQL
函数 361 §22.5.1 错误处理函数 362 §22.5.2 数字函数 362 第二十三章 PL/
SQL
程序的测试和调试 363 §23.1 问题诊断 363 §23.1.1 调试指南 363 §23.1.2 显示在编译产生的错误 363 §23.2 插入测试表 364 §23.3 DBMS_OUTPUT的使用 364 §23.4 PL/
SQL
调试器 365 §23.4.1 Procedure Builder调试器 365 §23.4.2
SQL
-Station调试器 366 §23.5 程序设计方法 366 §23.5.1 模块化程序设计 366 §23.5.2 自顶向下设计 366 §23.5.3 数据抽象 366 第二十四章 性能及其它问题 367 §24.1共享池 367 §24.1.1 共享池工作原理 367 §24.1.2 估计共享池大小 368 §24.1.3 将PL/
SQL
驻留在共享池中 369 §24.2
SQL
语句调整 370 §24.3 网络问题 373 §24.4 PL/
SQL
wrap(转换器) 373 §24.4.1 运行 wrap实用程序 373 §24.4.2 输入和输出文件 374 §24.5 DBMS_OUTPUT的使用 374 第二十五章 对象类型 376 §25.1 对象类型定义 376 §25.1.1 定义对象类型头 376 §25.1.2 定义对象类型体 376 §25.1.3 定义对象类型例子 377 §25.1.4 初始化对象类型 378 §25.1.5 使用对象类型 379 §25.2 对象类型修改 381 §25.3 对象类型删除 381 第二十六章 动态PL/
SQL
简介 383 §26.1 概述 383 §26.1.1 静态
SQL
和动态
SQL
383 §26.1.2 用DBMS_
SQL
包实现动态 383 §26.1.3 用本地动态
SQL
实现动态 385 §26.2 使用DBMS_
SQL
进行动态编程 385 §26.2.1 执行DML、DDL及Alter session语句 385 §26.2.2 示例 388 §26.2.3 执行DDL 语句 389 §26.2.4 执行PL/
SQL
块 390 §26.4 本地动态
SQL
391 §26.4.1使用EXECUTE IMMEDIATE语句 391 §26.4.2向后兼容情况 392 §26.4.3指定参数模式 393 第二十七章 LOB和DBMS_LOB包简介 394 §27.1 LOB类型一般使用 394 §27.1.1 LOB类型存储 395 §27.1.2 临
时
LOB类型 395 §27.1.3 LOB类型的接口 396 §27.2 一般LOB表与数据加载 396 §27.2.1 建立包含LOB的表 396 §27.2.2 用EMPTY_CLOB或EMPTY_BLOB插入LOB 398 §27.2.3 一般的LOB插入 399 §27.3 内部LOB和DBMS_LOB的使用 399 §27.3.1 APPEND过程 400 §27.3.2 CLOSE过程 401 §27.3.3 COMPARE函数 401 §27.3.4 COPY过程 403 §27.3.5 ERASE过程 405 §27.3.6 GETCHUNKSIZE函数 406 §27.3.7 GETLENGTH函数 407 §27.3.8 INSTR函数 408 §27.3.9 READ过程 409 §27.3.10 SUBSTR函数 410 §27.3.11 WRITE过程 411 §27.3.12 WRITEAPPEND过程 412 §27.4临
时
LOB 413 §27.4.1 建立临
时
LOB 413 §27.4.2 查看临
时
LOB 414 §27.4.3 释放临
时
LOB 414 §27.4.4 从BFILE中加载临
时
LOB 415 §27.4.5 查看临
时
LOB是否打开 415 §27.4.6 显示临
时
LOB数据 416 §27.4.7 从临
时
LOB读数据 417 §27.4.8 从临
时
LOB读部分数据 418 §27.4.9 比较两个临
时
LOB数据 419 §27.4.10 查看临
时
LOB模式的存在 420 §27.4.11 得到临
时
LOB的长度 421 §27.4.12 拷贝部分临
时
LOB数据 421 §27.4.13 为临
时
LOB拷贝位置 422 §27.4.14 加临
时
LOB到另外的LOB 423 §27.4.15 写追加到临
时
LOB 424 §27.4.16 写数据到临
时
LOB 424 §27.4.17 修理临
时
LOB数据 425 §27.4.18 删除临
时
LOB数据 426 §27.5外部LOB (BFILE) 426 §27.5.1 BFILE目录指定 426 §27.5.2 建立包括BFILE列的表 427 §27.5.3 用BFILENAME()插入数据 428 §27.5.4 从另外表选择BFILE插入数据 429 §27.5.5 用初始化BFILE位置来插入数据BFILE行 429 §27.5.6 动态加载数据BFILE的表 429 §27.5.7 用BFILE数据来加载LOB数据 430 §27.5.8 用FILEOPEN打开BFILE 431 §27.5.9 用OPEN打开BFILE 431 §27.5.10 用FILEISOPEN看BFILE是否打开 431 §27.5.11 用ISOPEN看BFILE是否打开 432 §27.5.12 显示BFILE 432 §27.5.13 从BFILE中读数据 433 §27.5.14 读部分BFILE 433 §27.5.15 比较BFILE 434 §27.5.16 判断BFILE是否存在模式 434 §27.5.17 判断BFILE是否存在 435 §27.5.18 得到BFILE长度 435 §27.5.19 拷贝BFILE的LOB位置 436 §27.5.20 得到目录别名和文件
名字
436 §27.5.21 用初始化BFILE位置更新BFILE 437 §27.5.22 用FILECLOSE关闭BFILE 437 §27.5.23 用CLOSE关闭BFILE 437 §27.5.24 用CLOSEALL关闭所有BFILE 438 §27.5.25 用DELETE等删除BFILE数据 438 §27.6 使用
SQL
*loader加载LOB 438 §27.6.1 加载图象和文本文件 438 §27.6.2 加载文本文件 439 第二十八章 PL/
SQL
编程技巧 442 §28.1用
触发器
实现日期格式的自动设置 442 §28.2如何避免TOO_MANY_ROWS错误 443 §28.3如何解决TOO_MANY_ROWS问题 446 §28.4如何在PL/
SQL
中使用数组 447 §28.5如何使用
触发器
完成数据复制 448 §28.6在PL/
SQL
中实现Truncate 449 §28.7如何导出存储过程、
触发器
的代码 450 附录A:
SQL
及
SQL
*PLUS 命令参考 459 %FOUND 460 %ISOPEN 460 %NOTFOUND 461 %ROWCOUNT 462 %ROWTYPE 463 %TYPE 463 (+) 464 @ (“at” 号) 464 @@ 465 ABS 465 ACCEPT 466 ACOS 466 ADD_MONTHS 467 ALTER CLUSTER 467 ALTER DATABASE 468 ALTER FUNCTION 469 ALTER INDEX 469 ALTER PACKAGE 470 ALTER PROCEDURE 470 ALTER PROFILE 471 ALTER RESOURCE COST 471 ALTER ROLE 472 ALTER ROLLBACK SEGMENT 472 ALTER SEQUENCE 473 ALTER SESSION 473 ALTER SNAPSHOT 474 ALTER SNAPSHOT LOG 475 ALTER SYSTEM 475 ALTER TABLE 476 ALTER TABLESPACE 477 ALTER TRIGGER 478 ALTER TYPE 478 ALTER USER 479 ALTER VIEW 480 ANALYZE 480 APPEND 481 ASCII 481 ASIN 482 ATAN 482 ATAN2 483 AUDIT 483 AVG 484 BFILENAME 484 BLOCK 485 BTITLE 486 CEIL 487 CHANGE 488 CHARTOROWID 488 CHR 489 CLEAR 489 CLOSE 490 COLUMN 490 COMMENT 491 COMMIT 492 COMPUTE 492 CONCAT 493 CONCATENATE 493 CONNECT BY 494 CONVERT 494 COPY 495 COS 496 COSH 496 COUNT 497 CREATE CLUSTER 497 CREATE CONTROLFILE 498 CREATE DATABASE 499 CREATE DATABASE LINK 500 CREATE PROFILE 500 CREATE DIRECTORY 501 CREATE FUNCTION 501 CREATE INDEX 502 CREATE LIBRARY 503 CREATE PACKAGE 503 CREATE PACKAGE BODY 504 CREATE PROCEDURE 506 CREATE ROLE 507 CREATE ROLLBACK SEGMENT 507 CREATE SCHEMA 508 CREATE SEQUENCE 509 CREATE SNAPSHOT 509 CREATE SNAPSHOT LOG 510 CREATE SYNONYM 511 CREATE TABLE 511 CREATE TABLESPACE 513 CREATE TRIGGER 514 CREATE TYPE 515 CREATE TYPE BODY 516 CREATE USER 516 CREATE VIEW 517 CURRVAL 518 CURSOR_ALREADY_OPEN 518 DATATYPE 519 DATATYPE —CHAR 519 DATATYPE —DATE 520 DATATYPE —FLOAT 520 DATATYPE —LONG 520 DATATYPE —LONGRAW 521 DATATYPE —MLSLABEL 521 DATATYPE —NUMBER 521 DATATYPE —RAW 522 DATATYPE —ROWID 522 DATATYPE —VARCHAR 522 DATATYPE —VARCHAR2 522 DECLARE 523 DECODE 523 DEFINE 524 DEL 524 DELETE 525 DEREF 526 DESCRIBE 526 DROP CLUSTER 527 DROP DATABASE LINK 527 DROP DIRECTORY 528 DROP FUNCTION 528 DROP INDEX 528 DROP LIBRARY 529 DROP PACKAGE 529 DROP PROCEDURE 530 DROP PROFILE 530 DROP ROLE 531 DROP ROLLBACK SEGMENT 531 DROP SEQUENCE 532 DROP SNAPSHOT 532 DROP SNAPSHOT LOG 532 DROP SYNONYM 533 DROP TABLE 533 DROP TABLESPACE 534 DROP TRIGGER 534 DROP TYPE 535 DROP TYPE BODY 535 DROP USER 536 DROP VIEW 536 DUMP 537 DUP_VAL_ON_INDEX 537 EDIT 538 EMPTY_BLOB 538 EMPTY_CLOB 539 EXCEPTION INIT Pragma 539 EXECUTE 540 EXISTS 540 EXIT 541 EXIT 542 EXIT-WHEN 542 EXP 543 EXPLAIN PLAN 543 FETCH 544 FLOOR 545 FOR-LOOP 545 FORMAT 546 FORMAT —DATE 546 FORMAT —NUMBER 547 GET 547 GLB 548 GOTO 548 GRANT 549 GREATEST 550 GREATEST_LB 550 HEXTORAW 551 HOST 551 IF-THEN 552 IF-THEN-ELSE 552 IF-THEN-ELSEIF 553 INITCAP 554 INPUT 554 INSERT 555 INSTR 555 INSTRB 556 INTERSECT 557 INVALID_CURSOR 557 INVALID_NUMBER 558 KEYWORDS 559 LABELS 560 LAST_DAY 561 LEAST 561 LEAST_LB 562 LENGTH 562 LENGTHB 562 LIKE 563 LIST 564 LN 565 LOCK TABLE 565 LOG 566 LOGIN_DENIED 566 LOOP 567 LOWER 568 LPAD 568 LTRIM 569 LUB 569 MAKE_REF 570 MAX 570 MIN 571 MINUS 571 MOD 572 MONTHS_BETWEEN 572 NEW_TIME 573 NEXT_DAY 574 NEXTVAL 574 NLS_CHARSET_DECL_LEN 575 NLS_CHARSET_ID 575 NLS_CHARSET_NAME 576 NLS_INITCAP 576 NLS_LOWER 577 NLS_UPPER 577 NO_DATA_FOUND 578 NOAUDIT 579 NOT_LOGGED_ON 579 NULL 580 NVL 581 OPEN 581 OPEN-FOR 582 运算符 582 运算符— < > 583 运算符—> 583 运算符—> = 584 运算符—! = 584 运算符—* 585 运算符—+ 586 运算符—-* 586 运算符—/ 587 运算符—<= 587 运算符—= 588 运算符—AND 589 运算符—BETWEEN 589 运算符—IN 590 运算符—IS NOT NULL 590 运算符—IS NULL 591 运算符—NOT 591 运算符—NOT BETWEEN 592 运算符—NOT IN 592 运算符—OR 593 PRIOR 593 PROGRAM_ERROR 594 PROMPT 595 PSEUDOCOLUMN 595 RAISE 595 RAWTOHEX 596 RECORD 596 REFTOHEX 597 REMARK 598 RENAME 598 REPFOOTER 599 REPHEADER 599 REPLACE 600 REPLACE 601 RETURN 601 REVOKE 602 ROLLBACK 603 ROUND 603 ROWIDTOCHAR 604 ROWTYPE_MISMATCH 605 RPAD 606 RTRIM 606 SAVE 607 SAVEPOINT 607 SELECT 608 SELECT INTO 608 SET 609 SET ROLE 611 SET TRANSACTION 612 SHOW 612 SIGN 613 SIN 614 SINH 614 SOUNDEX 615 SPOOL 615
SQL
ERRM 616
SQL
PLUS 616 SQRT 617 START 617 STDDEV 618 STORAGE 618 STORAGE_ERROR 619 STORE 619 SUBSTR 620 SUBSTRB 620 SUM 621 SYSDATE 622 TABLE 622 TAN 623 TANH 623 TIMEOUT_ON_RESOURCE 624 TIMING 624 TO_CHAR (date) 625 TO_CHAR (label) 625 TO_CHAR (number) 626 TO_DATE (char) 626 TO_LABEL (char) 627 TO_MULTI_BYTE (char) 627 TO_NUMBER (char) 628 TO_SINGLE_BYTE (char) 628 TOO_MANY_ROWS 629 TRANSLATE 629 TRUNC (date) 630 TRUNC (number) 631 TRUNCATERUNCATE 631 TTITLE 632 UID 633 UNDEFINE 633 UNION 634 UNION ALL 634 UPDATE 635 UPPER 636 USER 636 USERENV 637 VALUE_ERROR 638 VARIABLE 638 VARIABLE ASSIGNMENT 639 VARIANCE 639 VSIZE 640 RESERVED WORDS 640 WHENEVER OSERROR 641 WHENEVER
SQL
ERROR 642 WHILE-LOOP 642 ZERO_DIVIDE 643
疑难问题
22,210
社区成员
121,726
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章