Oracle Database 12c PL/SQL开发指南


Oracle Database 12c PL/SQL开发指南

文章插图
Oracle Database 12c PL/SQL开发指南【Oracle Database 12c PL/SQL开发指南】《OracleDatabase12cPL/SQL开发指南(第7版)》用于开发、调试和管理健壮的资料库程式 。本书包含了详细的案例以及来自于OracleACE分享的专家策略,阐述了如何获取和处理数据、编写PL/SQL语句、执行高效的查询、结合使用PHP和Java以及处理动态SQL 。这本由Oracle出版的综合性指南完整地覆盖了代码的测试、安全以及面向对象编程技术 。
基本介绍中文名:Oracle Database 12c PL/SQL开发指南(第7版)
译 者:陶佰明 邓超 刘颖
定 价:138元
出版时间:2015.08.01
作 者:[美] Michael McLaughlin
ISBN:9787302403647
出版社:清华大学出版社
目录第1章 Oracle PL/SQL程式开发概览 31.1 PL/SQL的历史和背景 41.2 Oracle开发架构 61.2.1 资料库 71.2.2 PL/SQL语言 81.2.3 Oracle处理架构 101.2.4 两层模型 111.2.5 n层模型 121.3 本章小结 131.4 精熟测验 13第2章 新特性 152.1 SQL新特性 162.1.1 用数据目录DIRECTORY限定LIBRARY对象 162.1.2 使用有效时间(VT)来定义表 172.1.3 增强的Oracle原生LEFT OUTER JOIN语法 182.1.4 基于序列的列的默认值 182.1.5 显式NULL插入的默认值 192.1.6 标识列 202.1.7 STRING和RAW类型大小限制的增加 212.1.8 将SQL语句的结果传递给外部程式 212.1.9 查询行限制和偏移的原生SQL支持 232.1.10 MySQL应用程式的Oracle资料库驱动程式 262.1.11 SQL CROSS APPLY、OUTER APPLY和LATERAL 262.1.12 BEQUEATH CURRENT_USER视图 282.2 PL/SQL新特性 282.2.1 调用者许可权函式的快取 292.2.2 添加PL/SQL程式单元调用者到白名单 292.2.3 PL/SQL类型的原生客户端API支持 302.2.4 新的PL/SQL包utl_call_stack 302.2.5 dbms_utility包添加了expand_sql_txt子程式 302.2.6 dbms_sql包为parse过程添加了新的模式 322.2.7 SQL WITH子句中的PL/SQL函式 322.2.8 SQL中允许PL/SQL特定的数据类型 332.2.9 隐式的REF CURSOR参数绑定 362.3 支持脚本 362.4 本章小结 362.5 精熟测验 36第3章 PL/SQL基础知识 393.1 块结构 403.1.1 执行块 403.1.2 基本块结构 413.1.3 声明块 433.1.4 异常块 443.2 块中变数的行为 453.2.1 匿名块 453.2.2 嵌套匿名块 493.2.3 局部命名块 513.2.4 存储命名块 543.3 基本标量和複合数据类型 563.3.1 标量数据类型 563.3.2 属性和表的锚定 583.3.3 複合数据类型 603.4 控制结构 723.4.1 条件结构 723.4.2 叠代结构 743.5 异常 813.5.1 用户自定义异常 823.5.2 动态的用户自定义异常 843.6 批量操作 843.7 函式、过程和包 863.7.1 函式 873.7.2 过程 883.7.3 包 903.8 事务作用域 943.8.1 单事务作用域 953.8.2 多事务作用域 963.9 资料库触发器 963.10 本章小结 973.11 精熟测验 97第4章 语言基本知识 994.1 辞彙单元 994.1.1 分隔设定 1004.1.2 标识符 1034.1.3 字面值 1054.1.4 注释 1064.2 变数和数据类型 1074.2.1 变数数据类型 1084.2.2 标量数据类型 1114.2.3 大对象 1254.2.4 複合数据类型 1264.2.5 系统引用游标 1304.3 本章小结 1324.4 精熟测验 132第5章 控制结构 1345.1 条件语句 1355.1.1 IF语句 1415.1.2 CASE语句 1455.1.3 条件编译语句 1475.2 叠代语句 1505.2.1 简单循环语句 1505.2.2 FOR循环语句 1565.2.3 WHILE循环语句 1585.3 游标结构 1615.3.1 隐式游标 1625.3.2 显式游标 1665.4 批语句 1775.4.1 BULK COLLECT INTO语句 1785.4.2 FORALL语句 1825.5 支持脚本 1875.6 本章小结 1875.7 精熟测验 187第6章 集合 1896.1 集合介绍 1906.2 对象类型:变长数组和表集合 1926.2.1 变长数组集合 1926.2.2 表集合 1956.3 关联数组 2096.4 Oracle集合API 2166.4.1 COUNT方法 2186.4.2 DELETE方法 2196.4.3 EXISTS方法 2206.4.4 EXTEND方法 2216.4.5 FIRST方法 2226.4.6 LAST方法 2226.4.7 LIMIT方法 2236.4.8 NEXT方法 2236.4.9 PRIOR方法 224 6.4.10 TRIM方法 2246.5 支持脚本 2266.6 本章小结 2266.7 精熟测验 226第7章 错误管理 2287.1 异常类型和作用域 2297.1.1 编译时错误 2307.1.2 运行时错误 2327.2 异常管理内置函式 2387.3 用户定义的异常 2407.3.1 声明用户定义的异常 2407.3.2 动态的用户定义的异常 2427.4 异常堆叠函式 2457.5 支持脚本 2507.6 本章小结 2507.7 精熟测验 251第8章 函式和过程 2558.1 函式和过程架构 2568.2 事务作用域 2628.2.1 调用子例程 2638.2.2 位置表示法 2648.2.3 命名表示法 2648.2.4 混合表示法 2648.2.5 排除表示法 2648.2.6 SQL调用表示法 2658.3 函式 2658.3.1 函式模型选择 2678.3.2 创建选项 2678.3.3 按值传递函式 2798.3.4 按引用传递函式 2918.4 过程 2948.4.1 按值传递过程 2958.4.2 按引用传递过程 2978.5 支持脚本 2998.6 本章小结 3008.7 精熟测验 300第9章 包 3029.1 包架构 3039.2 包规範 3089.2.1 原型特性 3099.2.2 连续可重用预编译器指令 3119.2.3 变数 3129.2.4 类型 3149.2.5 组件:函式与过程 3169.3 包主体 3189.3.1 原型特性 3189.3.2 变数 3209.3.3 类型 3229.3.4 组件:函式与过程 3239.4 定义者与调用者许可权模型 3269.5 管理资料库目录中的包 3299.5.1 查找、验证和描述包 3299.5.2 检查依赖关係 3309.5.3 比较验证方法:时间戳与签名 3319.6 本章小结 3329.7 精熟测验 332第10章 大对象 33410.1 使用内部存储的LOB类型 33510.1.1 低于32K的LOB赋值 33510.1.2 高于32K的LOB赋值 33710.2 将档案读入内部存储的列 34510.2.1 将本地档案读入CLOB或NCLOB列 34610.2.2 将本地档案读入BLOB列 34810.2.3 通过Web页面处理LOB 35110.3 使用二进制档案(BFILE) 35810.3.1 创建和使用虚拟目录 359 10.3.2 读取规範路径名与档案名称 36510.4 了解dbms_lob包 37110.4.1 包常量 37110.4.2 包异常 37310.4.3 打开与关闭方法 37310.4.4 操作方法 37410.4.5 内省方法 38010.4.6 BFILE方法 38410.4.7 临时LOB方法 38510.4.8 安全连结方法 38710.5 支持脚本 39010.5.1 从LONG转换为CLOB的脚本 39010.5.2 管理来自于档案系统的LOB 39010.5.3 通过Web管理CLOB和BLOB LOB 39010.5.4 通过Web管理BFILE LOB 39010.6 本章小结 39110.7 精熟测验 391第11章 对象类型 39311.1 对象基础知识 39611.1.1 声明对象类型 39611.1.2 实现对象主体 39911.1.3 对象类型白名单 40311.1.4 getter和setter 40411.1.5 静态成员方法 40611.1.6 比较对象 40811.2 继承和多态 41511.2.1 声明子类 41611.2.2 实现子类 41711.2.3 类型演变 42111.3 实现对象类型集合 42211.3.1 声明对象类型集合 42211.3.2 实现对象类型集合 42311.4 支持脚本 42611.5 本章小结 42611.6 精熟测验 426第12章 触发器 42912.1 触发器简介 43012.2 资料库触发器架构 43212.3 数据定义语言触发器 43512.3.1 事件属性函式 43712.3.2 构建DDL触发器 44812.4 数据操作语言触发器 45012.4.1 语句级触发器 45112.4.2 行级触发器 45312.5 複合触发器 46012.6 Instead of触发器 46412.7 系统和资料库事件触发器 46812.8 触发器限制 47012.8.1 最大触发器尺寸 47012.8.2 SQL语句 47012.8.3 LONG和LONG RAW数据类型 47112.8.4 变异表 47112.8.5 系统触发器 47212.9 支持脚本 47312.10 本章小结 47312.11 精熟测验 473第13章 动态SQL 47513.1 动态SQL架构 47613.2 本地动态SQL(NDS) 47713.2.1 动态语句 47813.2.2 带输入的动态语句 48113.2.3 带输入和输出的动态语句 483 13.2.4 带未知数量的输入的动态语句 48613.3 dbms_sql包 48813.3.1 动态语句 48913.3.2 带输入变数的动态语句 49213.3.3 带输入变数和固定输出的动态语句 49413.3.4 带输入和输出变数的动态语句 49813.3.5 dbms_sql包定义 50313.4 支持脚本 51613.5 本章小结 51713.6 精熟测验 517附录A Oracle资料库入门 521A.1 Oracle资料库架构 522A.2 启动和停止OracleDatabase 12c伺服器 528A.2.1 UNIX或Linux操作 529A.2.2 Microsoft Windows操作 533A.3 启动和停止Oracle侦听器 534A.4 多版本并发控制 539A.4.1 数据事务 540A.4.2 DML锁定和隔离控制 542A.5 定义者许可权和调用者许可权 543A.5.1 定义者许可权 544A.5.2 调用者许可权 544A.6 SQL互动和批处理 545A.6.1 SQL*Plus命令行界面 545A.6.2 Oracle SQL Developer界面 564A.7 资料库管理员 570A.7.1 配置用户 570A.7.2 使用资料库约束 577A.7.3 安全加固 586A.7.4 数据管理 595A.8 SQL调优 597A.8.1 EXPLAIN PLAN语句 598A.8.2 DBMS_XPLAN包 599A.9 SQL跟蹤 603A.9.1 跟蹤会话状态 603A.9.2 将原始跟蹤档案转换为可读跟蹤档案 605A.10 本附录小结 606附录B SQL入门 607B.1 Oracle SQL数据类型 610B.2 数据定义语言(DDL) 614B.2.1 CREATE语句 615B.2.2 ALTER语句 675B.2.3 RENAME语句 691B.2.4 DROP语句 691B.2.5 TRUNCATE语句 694B.2.6 COMMENT语句 694B.3 数据管理语言(DML) 694B.3.1 符合ACID的事务 695B.3.2 INSERT语句 698B.3.3 UPDATE语句 712B.3.4 DELETE语句 724B.3.5 MERGE语句 728B.4 事务控制语言(TCL) 735B.5 查询:SELECT语句 736 B.5.1 返回列或者返回列运算结果的查询 738B.5.2 聚合查询 751B.5.3 选择性返回列或结果的查询 756B.5.4 联接结果 765B.5.5 数据的联接 767B.5.6 集合的联接 775B.6 本附录小结 778附录C SQL内置函式 779C.1 字元函式 780C.1.1 ASCII函式 780C.1.2 ASCIISTR函式 780C.1.3 CHR函式 781C.1.4 CONCAT函式 781C.1.5 INITCAP函式 782C.1.6 INSTR函式 782C.1.7 LENGTH函式 783C.1.8 LOWER函式 783C.1.9 LPAD函式 784C.1.10 LTRIM函式 784C.1.11 REPLACE函式 785C.1.12 REVERSE函式 785C.1.13 RPAD函式 785C.1.14 RTRIM函式 786C.1.15 UPPER函式 786C.2 数据类型转换函式 787C.2.1 CAST函式 787C.2.2 CONVERT函式 789C.2.3 TO_CHAR函式 790C.2.4 TO_CLOB函式 792C.2.5 TO_DATE函式 792C.2.6 TO_LOB函式 793C.2.7 TO_NCHAR函式 794C.2.8 TO_NCLOB函式 795C.2.9 TO_NUMBER函式 795C.3 日期-时间转换函式 796C.3.1 ADD_MONTHS函式 796C.3.2 CURRENT_DATE函式 796C.3.3 CURRENT_TIMESTAMP函式 796C.3.4 DBTIMEZONE函式 797C.3.5 EXTRACT函式 797C.3.6 FROM_TZ函式 798C.3.7 LAST_DAY函式 798C.3.8 LOCALTIMESTAMP函式 799C.3.9 MONTHS_BETWEEN函式 799C.3.10 NEW_TIME函式 799C.3.11 ROUND函式 800C.3.12 SYSDATE函式 801C.3.13 SYSTIMESTAMP函式 801C.3.14 TO_CHAR(date)函式 801C.3.15 TO_DSINTERVAL函式 802C.3.16 TO_TIMESTAMP函式 803 C.3.17 TO_TIMESTAMP_TZ函式 803C.3.18 TO_YMINTERVAL函式 804C.3.19 TRUNC(date)函式 804C.3.20 TZ_OFFSET函式 804C.4 集合管理函式 805C.4.1 CARDINALITY函式 805C.4.2 COLLECT函式 805C.4.3 POWERMULTISET函式 809C.4.4 POWERMULTISET_BY_CARDINALITY函式 809C.4.5 SET函式 810C.5 集合运算符 810C.5.1 CARDINALITY运算符 812C.5.2 EMPTY运算符 812C.5.3 MULTISET运算符 812C.5.4 MULTISET EXCEPT运算符 813C.5.5 MULTISET INTERSECT运算符 814C.5.6 MULTISET UNION运算符 814C.5.7 SET运算符 815C.5.8 SUBMULTISET OF运算符 816C.6 数字函式 816C.6.1 CEIL函式 817C.6.2 FLOOR函式 817C.6.3 MOD函式 817C.6.4 POWER函式 819C.6.5 REMAINDER函式 820C.6.6 ROUND函式 821C.7 错误报告函式 821C.7.1 SQLCODE函式 821C.7.2 SQLERRM函式 822C.8 杂项函式 823C.8.1 BFILENAME函式 824C.8.2 COALESCE函式 826C.8.3 DECODE函式 826C.8.4 DUMP函式 827C.8.5 EMPTY_BLOB函式 828C.8.6 EMPTY_CLOB函式 830C.8.7 GREATEST函式 831C.8.8 LEAST函式 833C.8.9 NANVL函式 834C.8.10 NULLIF函式 835C.8.11 NVL函式 836C.8.12 SYS_CONTEXT函式 836C.8.13 TABLE函式 839C.8.14 TREAT函式 842C.8.15 USERENV函式 843C.8.16 VSIZE函式 844C.9 本附录小结 844附录D PL/SQL内置程式包和类型 845D.1 Oracle Database 11g和12c的新程式包 846 D.2 程式包使用示例 852D.2.1 DBMS_APPLICATION_INFO示例 853D.2.2 DBMS_COMPARISON 858D.2.3 DBMS_CRYPTO 863D.2.4 DBMS_FGA 866D.2.5 案例研究:查询工具 867D.3 支持脚本 874D.4 本附录小结 874附录E 正则表达式入门 875E.1 正则表达式简介 876E.1.1 字元类 876E.1.2 校準类 880E.1.3 元字元 880E.1.4 元序列 880E.1.5 字面值 881E.2 正则表达式实现 881E.2.1 REGEXP_COUNT函式 882E.2.2 REGEXP_INSTR函式 885E.2.3 REGEXP_LIKE函式 886E.2.4 REGEXP_REPLACE函式 887E.2.5 REGEXP_SUBSTR函式 889E.3 支持脚本 890E.4 本附录小结 890附录F 包装PL/SQL代码入门 891F.1 包装PL/SQL的限制 892F.1.1 PL/SQL的wrap实用程式的局限性 892F.1.2 DBMS_DDL.WRAP函式的限制 892F.2 使用wrap命令行实用程式 893F.3 使用DBMS_DDL命令行实用程式 893F.3.1 WRAP函式 893F.3.2 CREATE_WRAPPED过程 898F.4 本附录小结 899附录G PL/SQL分层的配置档案入门 900G.1 配置架构 901G.2 收集配置档案数据 902G.3 配置档案数据 905G.3.1 读取原始输出 905G.3.2 定义PL/SQL配置档案表 907G.3.3 查询分析数据 909G.4 使用plshprof命令行实用程式 910G.5 支持脚本 912G.6 本附录小结 912附录H PL/SQL保留字和关键字 913附录I 精熟测验答案 927术语表 951