《Oracle PL/SQL程序设计 下 第5版》PDF下载

  • 购买积分:28 如何计算积分?
  • 作  者:(美)StevenFeusrsteinBillPribyl著;张晓明译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2222
  • ISBN:7115231437
  • 页数:1108 页
图书介绍:

第5部分 构造PL/SQL应用程序 543

第17章 过程、函数与参数 543

17.1代码模块化 543

17.2过程 545

17.2.1调用一个过程 547

17.2.2过程的头部 548

17.2.3过程体 548

17.2.4 END标签 548

17.2.5 RETURN语句 549

17.3函数 549

17.3.1函数的结构 549

17.3.2返回的数据类型 552

17.3.3 END标签 552

17.3.4调用函数 553

17.3.5不带参数的函数 554

17.3.6函数的头部 554

17.3.7函数体 555

17.3.8 RETURN语句 555

17.4参数 557

17.4.1定义参数 558

17.4.2形参和实参 558

17.4.3参数模式 559

17.4.4在PL/SQL中明确地把形参和实参关联在一起 562

17.4.5 NOCOPY参数模式限定符 566

17.4.6缺省值 566

17.5局部或者嵌套模块 567

17.5.1使用局部模块的好处 568

17.5.2局部模块的作用范围 571

17.5.3用局部模块让我们的代码更整洁 571

17.6模块重载 572

17.6.1使用重载的好处 573

17.6.2重载的限制 576

17.6.3关于数字类型的重载 576

17.7前置声明 577

17.8高级主题 579

17.8.1在SQL中调用我们的函数 579

17.8.2表函数 581

17.8.3确定性函数 591

17.9把模块化进行到底 592

第18章包 593

18.1为什么是包? 593

18.1.1演示包的能力 594

18.1.2有关包的一些概念 597

18.1.3图示私有性 599

18.2构建包的规则 599

18.2.1包规范 600

18.2.2包体 601

18.2.3包的初始化 603

18.3包成员的调用规则 607

18.4使用包数据 608

18.4.1在一个Oracle会话内全局可见 609

18.4.2全局公有数据 609

18.4.3包游标 610

18.4.4包的串行化 614

18.5何时使用包 617

18.5.1封装对数据的访问 617

18.5.2避免直接量的硬编码 620

18.5.3改善内置特性的可用性 622

18.5.4把逻辑上相关的功能组织在一起 623

18.5.5缓存静态的会话数据 624

18.6 包和对象类型 624

第19章 触发器 626

19.1 DML触发器 627

19.1.1 DML触发器的概念 628

19.1.2创建DML触发器 630

19.1.3 DML触发器的例子:不许作弊! 635

19.1.4同一类型的多个触发器 641

19.1.5何去何从 642

19.1.6突变表的错误 644

19.1.7复合触发器:聚集一堂 645

19.2 DDL触发器 648

19.2.1创建DDL触发器 649

19.2.2可用事件 651

19.2.3可用属性 652

19.2.4使用事件和属性 653

19.2.5删除不可删除的 657

19.2.6 INSTEAD OF CREATE触发器 657

19.3数据库事件触发器 659

19.3.1创建数据库事件触发器 659

19.3.2 STARTUP触发器 660

19.3.3 SHUTDOWN触发器 661

19.3.4 LOGON触发器 661

19.3.5 LOGOFF触发器 661

19.3.6 SERVERERROR触发器 662

19.4 INSTEAD OF触发器 666

19.4.1创建INSTEAD OF触发器 666

19.4.2 INSTEAD OF INSERT触发器 668

19.4.3 INSTEAD OF UPDATE触发器 670

19.4.4 INSTEAD OF DELETE触发器 671

19.4.5填充表 671

19.4.6嵌套表的INSTEAD OF触发器 672

19.5 AFTER SUSPEND触发器 674

19.5.1构建AFTER SUSPEND触发器 674

19.5.2看看真实的触发器 676

19.5.3 ORA_ SPACE_ ERROR INFO函数 677

19.5.4 DBMS_ RESUMABLE包 678

19.5.5捕获多个时间 679

19.5.6该不该处理? 680

19.6 管理触发器 680

19.6.1禁用、启用以及删除触发器 680

19.6.2创建一个禁用的触发器 681

19.6.3查看触发器 682

19.6.4检查触发器的有效性 684

第20章 管理PL/SQL代码 685

20.1管理数据库内的代码 686

20.1.1数据字典视图概述 687

20.1.2显示存储对象的信息 688

20.1.3源代码的显示和搜索 689

20.1.4根据程序的大小确定Pinning需求 691

20.1.5获得存储代码的属性 692

20.1.6通过视图分析和更改触发器状态 693

20.1.7分析参数信息 693

20.1.8分析标识符的使用(Oracle数据库11g的PL/Scope) 695

20.2依赖关系的管理以及代码的重编译 697

20.2.1通过数据字典视图分析依赖关系 698

20.2.2细粒度依赖(Oracle数据库11g) 702

20.2.3远程依赖 703

20.2.4 Oracle的远程调用模式的限制 706

20.2.5失效的程序单元的重编译 707

20.3编译时刻警告 711

20.3.1一个入门例子 711

20.3.2启用编译时刻警告 712

20.3.3一些有用的警告 714

20.4 PL/SQL程序的测试 722

20.4.1典型的、华而不实的测试技术 723

20.4.2 PL/SQL代码测试的一般建议 726

20.4.3 PL/SQL的自动测试选项 727

20.4.4用utPLSQL测试 728

20.4.5用Quest Code Tester for Oracle测试 730

20.5跟踪PL/SQL的执行 732

20.5.1 DBMS_APPLICATION_INFO 734

20.5.2 Quest Error Manager跟踪 736

20.5.3 DBMS_TRACE功能 738

20.6 PL/SQL程序的调试 741

20.6.1错误的调试方法 741

20.6.2调试技巧和策略 743

20.7保护存储过程代码 747

20.7.1包装的约束和限制 747

20.7.2使用包装功能 748

20.7.3通过DBMS_DDL动态包装 748

20.7.4包装过的代码的使用指南 749

20.8基于版本的重定义(Oracle数据库11gR2版本) 750

第21章 PL/SQL的性能优化 753

21.1辅助优化的工具 754

21.1.1内存使用分析 755

21.1.2发现PL/SQL代码中的瓶颈所在 755

21.1.3计算消耗时间 760

21.1.4选择最快的程序 762

21.1.5避免无限循环 763

21.1.6性能相关警告 764

21.2优化过的编译器 765

21.2.1优化器的工作原理 766

21.2.2循环Fetch操作的运行时优化 769

21.3数据缓存技术 770

21.3.1基于包的缓存 771

21.3.2确定性函数的缓存 776

21.3.3函数结果缓存(Oracle数据库11g) 778

21.3.4缓存总结 790

21.4多行SQL的批处理 790

21.4.1通过BULK COLLECT加速查询 792

21.4.2通过FORALL加速DML 798

21.5利用管道化的表函数提升性能 808

21.5.1用基于管道化函数的加载方式替换基于行的插入 809

21.5.2用管道函数调优Merge操作 816

21.5.3用并行管道函数进行异步的数据卸载 818

21.5.4并行管道函数中的分区子句和流子句对性能的影响 822

21.5.5管道函数和基于成本的优化器 823

21.5.6用管道函数优化复杂的数据加载 829

21.5.7管道函数结束语 836

21.6专用的优化技术 837

21.6.1使用NOCOPY参数模式提示符 837

21.6.2使用正确的数据类型 840

21.7回顾性能 841

第22章 I/O操作和PL/SQL 843

22.1显示信息 843

22.1.1启用DBMS_OUTPUT 844

22.1.2向缓存中写入行 844

22.1.3从缓存中读取内容 845

22.2文件的读写 846

22.2.1 UTL_FILE_DIR参数 847

22.2.2使用Oracle目录 848

22.2.3打开文件 850

22.2.4文件已经打开了吗? 852

22.2.5关闭文件 852

22.2.6读取文件 853

22.2.7向文件中写 855

22.2.8拷贝文件 858

22.2.9删除文件 859

22.2.10文件改名和文件移动 859

22.2.11提取文件属性 860

22.3发送邮件 861

22.3.1 Oracle的前提条件 862

22.3.2配置网络安全 863

22.3.3发送一个短的(32 767或者更少)的纯文本消息 863

22.3.4在邮件地址中加上“友好”的名字 865

22.3.5发送任意长度的纯文本消息 866

22.3.6发送带有小附件(<32 767)的消息 867

22.3.7以附件形式发送一个小文件(<32 767) 869

22.3.8任意大小的附件 870

22.4使用Web数据(HTTP) 872

22.4.1“分片”获得一个Web页面 873

22.4.2把页面提取到一个LOB中 874

22.4.3使用HTTP的用户名/密码验证 875

22.4.4获取一个SSL加密的Web页面(通过HTTPS) 876

22.4.5通过GET或者POST给一个Web页面提交数据 877

22.4.6禁用Cookies或者Cookies持久化 881

22.4.7从FTP服务器获取数据 881

22.4.8使用代理服务器 882

22.5 PL/SQL中可用的其他I/O类型 882

22.5.1数据库管道、队列、告警 883

22.5.2 TCP Socket 883

22.5.3 Oracle的内置Web服务器 883

第6部分 高级PL/SQL主题 887

第23章 应用安全与PL/SQL 887

23.1安全概述 887

23.2加密 888

23.2.1密钥长度 890

23.2.2算法 890

23.2.3填补和连接 892

23.2.4 DBMS_CRYPTO包 892

23.2.5数据加密 894

23.2.6 LOB的加密 897

23.2.7安全文件 897

23.2.8数据解密 898

23.2.9生成密钥 899

23.2.10密钥管理 900

23.2.11加密散列 905

23.2.12使用消息验证码 907

23.2.13使用透明数据加密(TDE) 908

23.2.14透明的表空间加密 910

23.3行级安全 912

23.3.1为什么要学习RLS 914

23.3.2一个简单的RLS示例 915

23.3.3使用动态策略 919

23.3.4使用列敏感的RLS 923

23.3.5 RLS调试 927

23.4应用程序上下文 930

23.4.1使用应用程序上下文 931

23.4.2上下文的安全 932

23.4.3把上下文用作RLS的谓词条件 933

23.4.4识别出非数据库的用户 936

23.5细粒度审计 938

23.5.1为什么要学习FGA 939

23.5.2一个简单的FGA示例 940

23.5.3访问多少列 942

23.5.4查看审计跟踪信息 943

23.5.5使用绑定变量 943

23.5.6使用句柄模块 945

第24章 PL/SQL架构 947

24.1 DIANA是谁(或者是什么) 947

24.2 Oracle是如何执行PL/SQL代码的 948

24.2.1一个例子 949

24.2.2编译器的限制 952

24.3 PL/SQL的缺省包 952

24.4执行权限模型 955

24.4.1定义者权限模型 956

24.4.2调用者权限模式 960

24.4.3组合权限模型 962

24.5条件编译 963

24.5.1条件编译的例子 964

24.5.2查询指令 965

24.5.3 $IF指令 968

24.5.4 $ERROR指令 970

24.5.5把代码和包常量同步 970

24.5.6用查询指令实现程序专有设置 971

24.5.7使用预处理后的代码 972

24.6 PL/SQL和数据库实例内存 974

24.6.1 PGA、UGA和CGA 974

24.6.2游标、内存及其他 975

24.6.3减少内存用的技巧 977

24.6.4如果内存用光了该怎么办 987

24.7原生式编译 990

24.7.1什么时候使用解释模式 990

24.7.2什么时候使用原生模式 991

24.7.3原生编译和数据库版本 991

24.8我们需要知道的 991

第25章 PL/SQL的全球化和本地化 993

25.1概述和术语 995

25.2 Unicode入门 996

25.2.1国家字符集的数据类型 998

25.2.2字符编码 998

25.2.3和全球化支持相关的参数 999

25.2.4 Unicode函数 1000

25.3字符语义 1007

25.4字符串排序顺序 1011

25.4.1二进制排序 1012

25.4.2单语言排序 1013

25.4.3多语言排序 1015

25.5多语言信息检索 1016

25.5.1信息检索和PL/SQL 1018

25.6日期/时间 1021

25.6.1时间戳数据类型 1021

25.6.2日期/时间格式 1022

25.7货币转换 1026

25.8 PL/SQL的全球化开发工具箱 1028

25.8.1 UTL_I18N工具包 1028

25.8.2 UTL_LMS异常处理包 1031

25.8.3 GDK实现选项 1032

第26章 PL/SQL的面向对象特性 1034

26.1 Oracle对象特性的介绍 1034

26.2对象类型示例 1036

26.2.1创建一个基类 1037

26.2.2创建子类型 1039

26.2.3方法 1040

26.2.4在Oracle数据库11g中调用父类的方法 1045

26.2.5保存、提取、使用持久化对象 1046

26.2.6演变和创建 1054

26.2.7回到指针吗? 1056

26.2.8泛化数据:ANY类型 1063

26.2.9我也可以自己做 1067

26.2.10对象的比较 1071

26.3对象视图 1075

26.3.1一个示例的关系系统 1077

26.3.2带有集合属性的对象视图 1078

26.3.3对象子视图 1081

26.3.4带有反关系的对象视图 1083

26.3.5 INSTEAD OF触发器 1084

26.3.6对象视图和对象表的区别 1086

26.4维护对象类型和对象视图 1087

26.4.1数据字典 1087

26.4.2权限 1089

26.5来自一个关系开发者的总结思考 1091

附录A正则表达式的元字符和函数参数 1093

A.1元字符 1093

A.2函数和参数 1096

A.2.1正则表达式函数 1096

A.2.2正则表达式参数 1097

附录B数字格式模型 1099

附录C日期格式模型 1102