正版 OraclePL/SQL程序设计(第6版)(上下册) 新书

正版 OraclePL/SQL程序设计(第6版)(上下册) 新书 pdf epub mobi txt 电子书 下载 2025

图书标签:
  • Oracle
  • PL/SQL
  • 程序设计
  • 数据库
  • 编程
  • 开发
  • 第6版
  • 上下册
  • 新书
  • 技术
  • IT
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 新知图书专营店
出版社: 人民邮电出版社
ISBN:9787115448750
商品编码:16767863042
丛书名: Oracle PLSQL程序设计第6版

具体描述

结束: 06 18 : 45 :
特卖价:¥33.80
市场价
¥49.80
折扣
6.79折
您节省
¥16
  165人已购买

每一篇文章,都能让你成为更好的自己
【正版新书】 不要在奋斗的年纪选择了安逸 何德恺 成为更好的自己 青春励志 励志的正能量图书籍 lz别在吃苦的年纪选择安逸
24.6 价格
¥36.00
折扣
6.83
团购结束: 06 22 : 55 :
47人已参加

书名:OraclePL/SQL程序设计(第6版)(上下册)

定价:188.00元

作者:(美)史蒂芬·弗伊尔斯坦(Steven Feuerstein),(美)比尔

出版社:人民邮电出版社

出版日期:2017-07-01

ISBN:9787115448750

字数:1461千字

页码:1086

版次:2

装帧:平装

开本:16开

商品重量:


暂无相关内容

(上)
第1部分用PL/SQL编程
第1章PL/SQL介绍3
1.1什么是PL/SQL3
1.2PL/SQL的起源4
1.2.1早期的PL/SQL4
1.2.2提高应用的可移植性4
1.2.3提高执行权限控制和交易完整性5
1.2.4低调开始,持续改进5
1.3这就是PL/SQL6
1.3.1与SQL的集成6
1.3.2控制和条件逻辑7
1.3.3出错处理8
1.4关于PL/SQL版本9
1.4.1Oracle数据库12c中PL/SQL的新特性10
1.5可供PL/SQL开发者使用的资源12
1.5.1O’Reilly的PL/SQL系列图书13
1.5.2网络上的PL/SQL资源14
1.6一些建议15
1.6.1别急,慢慢来15
1.6.2不要畏惧寻求帮助16
1.6.3采用有创造性的甚至激进的方法17
第2章创建和运行PL/SQL代码18
2.1在数据库中导航18
2.2创建和编辑源代码19
2.3SQL Plus19
2.3.1启动SQL Plus21
2.3.2运行SQL语句22
2.3.3运行PL/SQL程序22
2.3.4运行一个脚本24
2.3.5什么是“当前目录”24
2.3.6其他SQL Plus任务25
2.3.7SQL Plus中的异常处理29
2.3.8为什么SQL Plus让我们又爱又恨30
2.4执行基本的PL/SQL任务30
2.4.1创建存储程序31
2.4.2执行存储的程序33
2.4.3显示存储程序34
2.4.4存储程序的授权和别名35
2.4.5删除一个存储程序36
2.4.6隐藏存储程序的源代码36
2.5编辑PL/SQL的环境37
2.6从其他语言中调用PL/SQL37
2.6.1C语言,使用Oracle预编辑器(Pro*C)38
2.6.2Java:使用JDBC39
2.6.3Perl:使用PerlDBI和DBD::Oracle40
2.6.4PHP:使用Oracle扩展41
2.6.5PL/SQLServerPages42
2.6.6其他43
第3章语言基础44
3.1PL/SQL块结构44
3.1.1匿名块46
3.1.2命名块47
3.1.3嵌套块47
3.1.4作用范围48
3.1.5规范SQL语句中对变量和列的引用49
3.1.6可见性51
3.2PL/SQL字符集54
3.3标识符56
3.3.1保留字57
3.3.2空白和关键字58
3.4直接量59
3.4.1NULL60
3.4.2在一个直接量字符串中嵌入单引号61
3.4.3数字直接量61
3.4.4布尔直接量62
3.5分号分隔符62
3.6注释63
3.6.1单行注释语法63
3.6.2多行注释语法63
3.7PRAGMA关键字64
3.8标签65
第2部分PL/SQL程序结构
第4章条件与顺序控制69
4.1IF语句69
4.1.1IF—THEN组合69
4.1.2IF—THEN—ELSE的组合71
4.1.3IF—THEN—ELSIF组合73
4.1.4避免IF语法陷阱73
4.1.5嵌套的IF语句75
4.1.6短路估算75
4.2CASE语句和表达式77
4.2.1简单的CASE语句77
4.2.2搜索CASE语句79
4.2.3嵌套CASE语句81
4.2.4CASE表达式81
4.3GOTO语句83
4.4NULL语句84
4.4.1提高程序的可读性84
4.4.2在标签后使用NULL84
第5章循环迭代处理86
5.1循环的基础知识86
5.1.1不同循环的示例86
5.1.2PL/SQL循环的结构88
5.2简单循环89
5.2.1终止简单循环:EXIT和EXITWHEN89
5.2.2模仿REPEATUNTIL循环90
5.2.3故意的无限循环91
5.3WHILE循环92
5.4数值型FOR循环93
5.4.1数值型FOR循环的规则94
5.4.2数值型FOR循环的示例94
5.4.3处理特殊增量95
5.5游标FOR循环96
5.5.1游标FOR循环的示例97
5.6循环标签98
5.7CONTINUE语句99
5.8迭代处理技巧102
5.8.1为循环索引使用可理解的名称102
5.8.2以正确的方式说再见102
5.8.3获取FOR循环执行的信息103
5.8.4循环SQL语句104
第6章异常处理106
6.1异常处理概念和术语106
6.2定义异常108
6.2.1声明命名异常108
6.2.2关联异常名称与错误代码109
6.2.3命名的系统异常112
6.2.4异常作用范围114
6.3引发异常115
6.3.1RAISE语句115
6.3.2使用RAISE_APPLICATION_ERROR116
6.4处理异常117
6.4.1内置错误函数118
6.4.2单一处理句柄中结合多个异常122
6.4.3未处理异常123
6.4.4未处理异常的传播123
6.4.5继续过去的异常125
6.4.6编写WHENOTHERS处理代码127
6.5构建有效的错误管理架构129
6.5.1确定异常管理策略129
6.5.2对不同类型异常进行标准化处理130
6.5.3程序特定错误代码的组织使用133
6.5.4使用标准的错误管理程序133
6.5.5使用自己的异常“对象”135
6.5.6创建常见错误处理的标准模板137
6.6充分利用PL/SQL错误管理138
第3部分PL/SQL程序数据
第7章使用程序数据141
7.1程序数据的命名141
7.2PL/SQL数据类型概述143
7.2.1字符数据143
7.2.2数字144
7.2.3日期、时间戳和时间间隔145
7.2.4布尔类型145
7.2.5二进制数据类型146
7.2.6ROWID146
7.2.7REFCURSOR146
7.2.8Internet数据类型147
7.2.9“Any”数据类型147
7.2.10用户自定义数据类型147
7.3程序数据的声明147
7.3.1声明一个变量148
7.3.2声明常量148
7.3.3NOTNULL语句149
7.3.4锚定声明149
7.3.5游标和表的锚151
7.3.6使用锚定声明的益处152
7.3.7NOTNULL数据类型的锚153
7.4程序员定义的子类型153
7.5数据类型转换154
7.5.1隐式类型转换155
7.5.2显式类型转换156
第8章字符串162
8.1字符串类型162
8.1.1VARCHAR2数据类型163
8.1.2CHAR数据类型164
8.1.3String子类型164
8.2使用字符串165
8.2.1指定字符串常量165
8.2.2不可打印字符167
8.2.3拼接字符串168
8.2.4处理大小写169
8.2.5传统的检索、提取和替换172
8.2.6填充174
8.2.7剪裁176
8.2.8正则表达式的检索、提取和替换177
8.2.9使用空字符串187
8.2.10混用CHAR和VARCHAR2188
8.3字符串函数快速参考190
第9章数字199
9.1数值型数字类型199
9.1.1NUMBER类型200
9.1.2PLS_INTEGER类型204
9.1.3BINARY_INTEGER类型205
9.1.4SIMPLE_INTEGER类型205
9.1.5BINARY_FLOAT和BINARY_DOUBLE类型207
9.1.6SIMPLE_FLOAT和SIMPLE_DOUBLE类型212
9.1.7数字子类型212
9.2数字转换213
9.2.1TO_NUMBER函数213
9.2.2TO_CHAR函数216
9.2.3CAST函数221
9.2.4隐式转换222
9.3数字运算符224
9.4数字函数224
9.4.1四舍五入和截断函数224
9.4.2三角函数225
9.4.3数字函数的快速参考225
第10章日期和时间戳230
10.1Datetime数据类型230
10.1.1声明日期时间变量233
10.1.2选择日期时间数据类型233
10.2获取当前日期和时间234
10.3INTERVAL数据类型236
10.3.1声明INTERVAL变量237
10.3.2什么时候使用INTERVAL238
10.4日期时间转换240
10.4.1从字符串到日期时间240
10.4.2从日期时间到字符串242
10.4.3使用时区245
10.4.4匹配需要格式掩码247
10.4.5让匹配更轻松248
10.4.6解释滑动窗口中两位数字的年份248
10.4.7把时区转换成字符串249
10.4.8用填充模式把输出补齐250
10.5日期和时间戳直接量251
10.6时间间隔的转换252
10.6.1从数字到时间间隔的转换252
10.6.2把字符串转换成间隔253
10.6.3时间间隔的格式化显示254
10.7时间间隔直接量254
10.8CAST和EXTRACT256
10.8.1CAST函数256
10.8.2EXTRACT函数258
10.9日期时间的算法258
10.9.1时间间隔和日期时间的算法259
10.9.2DATE数据类型的日期算法260
10.9.3计算两个日期时间之间的时间间隔260
10.9.4DATE和TIMESTAMP混合计算262
10.9.5时间间隔的加运算263
10.9.6时间间隔的乘除运算264
10.9.7使用不受限制的时间间隔类型264
10.10日期/时间函数的快速参考266
第11章记录类型269
11.1PL/SQL中的记录269
11.1.1使用记录的好处270
11.1.2声明记录271
11.1.3程序员自定义的记录类型273
11.1.4使用记录类型275
11.1.5记录的比较281
11.1.6触发器伪记录282
第12章集合284
12.1集合概述285
12.1.1集合概念和术语285
12.1.2集合类型287
12.1.3集合示例288
12.1.4使用集合的场合291
12.1.5选择一个集合类型296
12.2集合方法(内置)297
12.2.1COUNT方法298
12.2.2DELETE方法299
12.2.3EXISTS方法300
12.2.4EXTEND方法300
12.2.5FIRST和LAST方法301
12.2.6LIMIT方法302
12.2.7PRIOR和NEXT方法303
12.2.8TRIM方法304
12.3使用集合305
12.3.1声明集合类型306
12.3.2集合变量的声明和初始化310
12.3.3用数据填充集合313
12.3.4访问集合内的数据318
12.3.5使用字符串索引的集合319
12.3.6复杂数据类型的集合324
12.3.7多级集合327
12.3.8在SQL中使用集合335
12.4嵌套表的多重集合操作342
12.4.1测试嵌套表是否相等及成员归属343
12.4.2检查元素是否是嵌套表的成员344
12.4.3执行高级别集合操作345
12.4.4嵌套表中的去重346
12.5schema级别集合的维护347
12.5.1必需的权限347
12.5.2集合和数据字典348
第13章其他数据类型349
13.1BOOLEAN类型349
13.2RAW数据类型350
13.3UROWID和ROWID数据类型351
13.3.1获取ROWID352
13.3.2使用ROWID352
13.4LOB数据类型353
13.5使用LOB354
13.5.1理解LOB定位符356
13.5.2LOB的空和NULL357
13.5.3向LOB中写入数据359
13.5.4读取LOB数据361
13.5.5BFILE的不同之处363
13.5.6SecureFiles和BasicFiles367
13.5.7临时LOB369
13.5.8原生的LOB操作372
13.5.9LOB转换函数376
13.6预定义的对象类型376
13.6.1XMLType类型376
13.6.2URI类型379
13.6.3Any类型381
第4部分PL/SQL中的SQL
第14章DML和事务管理387
14.1PL/SQL中的DML388
14.1.1DML简介388
14.1.2DML操作符的游标属性391
14.1.3从DML语句返回信息392
14.1.4DML和异常处理393
14.1.5DML和记录394
14.2事务管理397
14.2.1COMMIT语句397
14.2.2ROLLBACK语句398
14.2.3SAVEPOINT语句399
14.2.4SETTRANSACTION语句399
14.2.5LOCKTABLE语句400
14.3自治事务400
14.3.1定义自治事务401
14.3.2自治事务的规则和限制402
14.3.3事务的可见性403
14.3.4何时使用自治事务403
14.3.5创建自治日志记录机制404
第15章数据提取407
15.1游标基础408
15.1.1一些数据提取术语408
15.1.2典型的查询操作410
15.1.3游标属性介绍411
15.1.4在游标中引用PL/SQL变量413
15.1.5显式与隐式游标之间的选择414
15.2使用隐式游标414
15.2.1隐式游标示例415
15.2.2隐式游标的异常处理416
15.2.3隐式SQL游标的属性418
15.3使用显式游标419
15.3.1声明显式游标420
15.3.2打开显式游标423
15.3.3从显式游标获取424
15.3.4显式游标中的列别名425
15.3.5关闭显式游标426
15.3.6显式游标属性427
15.3.7游标参数429
15.4SELECT…FORUPDATE432
15.4.1COMMIT释放锁定433
15.4.2WHERECURRENTOF子句434
15.5游标变量和REFCURSOR435
15.5.1为什么使用游标变量436
15.5.2与静态游标的相似之处437
15.5.3声明REFCURSOR类型437
15.5.4声明游标变量438
15.5.5打开游标变量439
15.5.6从游标变量中提取数据440
15.5.7游标变量的使用规则442
15.5.8将游标变量作为参数传递445
15.5.9游标变量的约束限制447
15.6游标表达式447
15.6.1使用游标表达式448
15.6.2游标表达式的约束限制450
第16章动态SQL和动态
PL/SQL451
16.1NDS语句452
16.1.1EXECUTEIMMEDIATE语句452
16.1.2OPENFOR语句455
16.1.34种动态SQL方法460
16.2绑定变量462
16.2.1参数模式463
16.2.2重复的占位符465
16.2.3传递NULL值465
16.3使用对象和集合466
16.4动态PL/SQL468
16.4.1建立动态PL/SQL块469
16.4.2用动态块替换重复代码470
16.5NDS建议471
16.5.1对共享程序使用调用者权限471
16.5.2预测并处理动态错误472
16.5.3使用绑定而非拼接474
16.5.4少代码注入的危险475
16.6何时使用DBMS_SQL478
16.6.1获得查询列信息478
16.6.2实现第四种方法的动态SQL需求479
16.6.3小化动态游标解析485
16.6.4Oracle数据库11g新动态SQL特性486
16.6.5DBMS_SQL增强安全490
(下)
第5部分构造PL/SQL应用程序
第17章过程、函数和参数497
17.1代码模块化497
17.2过程499
17.2.1调用一个过程501
17.2.2过程头部501
17.2.3过程体501
17.2.4END标签502
17.2.5RETURN语句502
17.3函数502
17.3.1函数的结构503
17.3.2返回的数据类型504
17.3.3END标签506
17.3.4调用函数506
17.3.5不带参数的函数507
17.3.6函数头508
17.3.7函数体508
17.3.8RETURN语句509
17.4参数510
17.4.1定义参数511
17.4.2实参和形参511
17.4.3参数模式512
17.4.4在PL/SQL中显式地关联实参和形参515
17.4.5NOCOPY参数模式限定符519
17.4.6缺省值519
17.5局部或者嵌套模块520
17.5.1使用局部模块的益处521
17.5.2局部模块的作用范围523
17.5.3用局部模块使得代码更整洁524
17.6模块的重载524
17.6.1重载的益处525
17.6.2重载的限制528
17.6.3数字类型的重载528
17.7前置声明529
17.8高级主题530
17.8.1在SQL内部调用函数530
17.8.2表函数536
17.8.3确定性函数545
17.8.4隐式游标结果(Oracle数据库12c)546
17.9将模块化进行到底547
第18章程序包548
18.1为什么使用程序包548
18.1.1演示程序包的能力549
18.1.2与程序包相关的一些概念552
18.1.3图示私有性553
18.2构建程序包的规则554
18.2.1程序包说明554
18.2.2包体555
18.2.3包的初始化557
18.3包元素的调用规则561
18.4使用包数据562
18.4.1在一个Oracle会话内全局可见562
18.4.2全局公有数据563
18.4.3包游标563
18.4.4包的串行化568
18.5何时使用包570
18.5.1封装对数据的访问570
18.5.2避免直接量的硬编码573
18.5.3提高内置特性的可用性575
18.5.4把逻辑上相关的功能组织在一起576
18.5.5缓存静态的会话数据576
18.6包和对象类型577
第19章触发器578
19.1DML触发器579
19.1.1DML触发器的概念580
19.1.2创建DML触发器581
19.1.3DML触发器的例子:严禁作弊!586
19.1.4同一类型的多个触发器591
19.1.5如何对触发顺序排序592
19.1.6突变表的错误594
19.1.7复合触发器:聚在一处595
19.2DDL触发器598
19.2.1创建DDL触发器598
19.2.2可用事件600
19.2.3可用属性601
19.2.4使用事件和属性602
19.2.5删除不可删除的606
19.2.6INSTEADOFCREATE触发器606
19.3数据库事件触发器607
19.3.1创建数据库事件触发器608
19.3.2STARTUP触发器609
19.3.3SHUTDOWN触发器610
19.3.4N触发器610
19.3.5FF触发器610
19.3.6SERVERERROR触发器611
19.4INSTEADOF触发器615
19.4.1创建INSTEADOF触发器615
19.4.2INSTEADOFINSERT触发器616
19.4.3INSTEADOFUPDATE触发器618
19.4.4INSTEADOFDELETE触发器619
19.4.5填充表619
19.4.6嵌套表的lNSTEADOF触发器620
19.5AFTERSUSPEND触发器621
19.5.1建立AFTERSUSPEND触发器622
19.5.2看看真实的触发器623
19.5.3ORA_SPACE_ERROR_INFO函数624
19.5.4DBMS_RESUMABLE包625
19.5.5捕获多个时间626
19.5.6是否该处理?627
19.6维护触发器628
19.6.1禁用、启用以及删除触发器628
19.6.2创建一个禁用的触发器628
19.6.3查看触发器629
19.6.4检查触发器的有效性630
第20章管理PL/SQL代码631
20.1管理数据库内的代码632
20.1.1数据字典视图概述632
20.1.2显示存储对象的信息634
20.1.3源代码的显示和搜索635
20.1.4根据程序的大小确定Pinning需求637
20.1.5获得存储代码的属性637
20.1.6通过视图分析和更改触发器状态638
20.1.7分析参数信息639
20.1.8分析标识符的使用(Oracle数据库11g的PL/Scope)640
20.2管理依赖关系及重编译代码643
20.2.1通过数据字典视图分析依赖关系643
20.2.2细粒度依赖(Oracle数据库11g)647
20.2.3远程依赖648
20.2.4Oracle的远程调用模式的限制650
20.2.5重编译无效的程序单元651
20.3编译时刻警告655
20.3.1一个快速示例655
20.3.2开启编译时刻告警656
20.3.3一些有用的警告657
20.4测试PL/SQL程序664
20.4.1典型的、华而不实的测试技术665
20.4.2PL/SQL代码测试的一般建议668
20.4.3PL/SQL的自动测试选项669
20.5跟踪PL/SQL的执行670
20.5.1DBMS_UTILITY.FORMAT_CALL_STACK671
20.5.2UTL_CALL_STACK(Oracle数据库12c)673
20.5.3DBMS_APPLICATION_INFO676
20.5.4使用opp_trace进行跟踪677
20.5.5DBMS_TRACE工具包678
20.6PL/SQL程序的调试681
20.6.1错误的调试方法682
20.6.2调试技巧和策略683
20.7使用白名单来控制对程序单元的访问687
20.8存储代码的保护689
20.8.1封装的约束和局限690
20.8.2使用封装程序690
20.8.3使用DBMS_DDL进行动态封装690
20.8.4封装代码的使用指导691
20.9基于版本的重定义(Oracle数据库11gR2版本)692
第21章PL/SQL的性能优化695
21.1辅助优化的工具696
21.1.1内存使用分析696
21.1.2发现PL/SQL代码中的瓶颈697
21.1.3计算花费时间701
21.1.4选择快的程序703
21.1.5避免无限循环704
21.1.6性能相关的警告706
21.2优化编译器706
21.2.1优化器工作原理707
21.2.2循环Fetch操作的运行时优化710
21.3数据缓存技术710
21.3.1基于包的缓存711
21.3.2确定性函数的缓存716
21.3.3函数结果缓存(Oracle数据库11g)718
21.3.4缓存总结731
21.4重复的SQL的语句批处理732
21.4.1通过BULKCOLLECT加速查询733
21.4.2使用FORALL加速DML739
21.5利用管道化的表函数提升性能749
21.5.1用基于管道化函数的加载方式替换基于行的插入750
21.5.2用管道函数调优Merge操作756
21.5.3用并行管道函数进行异步数据导出758
21.5.4并行管道函数中的分区和流子句对性能的影响761
21.5.5管道函数和基于成本的优化器763
21.5.6用管道函数优化负载的数据加载768
21.5.7管道函数结束语775
21.6专用的优化技术775
21.6.1使用NOCOPY参数模式提示符775
21.6.2使用正确的数据类型778
21.6.3SQL(12.1及更高版本)的函数性能优化779
21.7性能回顾780
第22章I/O操作和PL/SQL781
22.1显示信息781
22.1.1启用DBMS_OUTPUT782
22.1.2向缓存中写入行782
22.1.3从缓存中读取内容783
22.2文件的读写784
22.2.1UTL_FILE_DIR参数784
22.2.2使用Oracle目录786
22.2.3打开文件787
22.2.4文件已经打开了吗?789
22.2.5关闭文件789
22.2.6读取文件790
22.2.7向文件中写792
22.2.8复制文件795
22.2.9删除文件795
22.2.10改名和移动文件796
22.2.11提取文件属性797
22.3发送邮件798
22.3.1Oracle的前提条件798
22.3.2设置网络安全799
22.3.3发送一个短的(小于32767字节)的纯文本消息799
22.3.4在邮件地址中加上“界面友好的”的名字801
22.3.5发送任意长度的纯文本消息802
22.3.6发送带有小附件(小于32767字节)的消息803
22.3.7以附件形式发送一个小文件(小于32767字节)805
22.3.8任意大小的附件805
22.4使用基于Web的数据(HTTP)808
22.4.1“分片”获得一个Web页面808
22.4.2把页面提取到一个LOB中809
22.4.3使用HTTP的用户名/密码验证810
22.4.4获取一个SSL加密的Web页面(使用HTTPS)811
22.4.5通过GET或者POST向Web页面提交数据812
22.4.6禁用cookie或者使cookie持久化816
22.4.7从FTP服务器获取数据816
22.4.8使用代理服务器817
22.5PL/SQL中可用的其他I/O类型817
22.5.1数据库管道、队列、告警817
22.5.2TCPSocket818
22.5.3Oracle的内置Web服务器818
第6部分高级PL/SQL主题
第23章应用系统安全与PL/SQL821
23.1安全概述821
23.2加密822
23.2.1密钥长度823
23.2.2算法824
23.2.3填补和连接825
23.2.4DBMS_CRYPTO包825
23.2.5数据加密827
23.2.6LOB的加密830
23.2.7安全文件830
23.2.8数据解密831
23.2.9生成密钥832
23.2.10密钥的管理833
23.2.11加密哈希838
23.2.12使用消息验证码839
23.2.13使用透明数据加密(TDE)841
23.2.14透明的表空间加密843
23.3行级安全844
23.3.1为什么要学习RLS846
23.3.2一个简单的RLS示例847
23.3.3静态与动态策略850
23.3.4使用列敏感的RLS854
23.3.5RLS调试857
23.4应用程序上下文861
23.4.1使用应用程序上下文862
23.4.2上下文的安全863
23.4.3把上下文用作RLS的谓词条件863
23.4.4识别出非数据库的用户867
23.5细粒度审计868
23.5.1为什么要学习FGA869
23.5.2一个简单的FGA示例870
23.5.3访问多少列872
23.5.4查看审计跟踪信息873
23.5.5使用绑定变量874
23.5.6使用句柄模块875
第24章PL/SQL架构877
24.1DIANA877
24.2Oracle如何执行PL/SQL代码878
24.2.1一个示例879
24.2.2编译器的限制881
24.3PL/SQL的缺省包882
24.4执行权限模型884
24.4.1定义者权限模型885
24.4.2调用者权限模型889
24.4.3组合权限模型891
24.4.4给PL/SQL程序单元授予角色(Oracle数据库12c)892
24.4.5“谁调用了我?”函数(Oracle数据库12c)895
24.4.6视图的BEQUEATHCURRENT_USER子句(Oracle数据库12c)895
24.4.7调用者权限优点的限制(Oracle数据库12c)897
24.5条件编译898
24.5.1条件编译的示例899
24.5.2查询指令900
24.5.3$IF指令903
24.5.4$ERROR指令904
24.5.5将代码与包常量同步905
24.5.6用查询指令实现程序专有设置906
24.5.7使用预处理后的代码907
24.6PL/SQL和数据库实例内存908
24.6.1SGA、PGA和UGA908
24.6.2游标、内存及其他909
24.6.3少内存使用的技巧910
24.6.4内存用光了怎么办920
24.7原生式编译922
24.7.1什么时候使用解释模式922
24.7.2什么时候使用原生模式922
24.7.3原生编译和数据库版本923
24.8一些须知923
第25章PL/SQL的化和本地化925
25.1概述和术语926
25.2Unicode入门928
25.2.1国家字符集的数据类型929
25.2.2字符编码929
25.2.3和化支持相关的参数930
25.2.4Unicode函数931
25.3字符语义938
25.4字符串排序顺序941
25.4.1二进制排序942
25.4.2单语言排序943
25.4.3多语言排序945
25.5多语言信息检索946
25.5.1信息检索和PL/SQL948
25.6日期/时间950
25.6.1时间戳数据类型951
25.6.2日期/时间格式952
25.7货币转换955
25.8PL/SQL的化开发工具箱957
25.8.1UTL_I18N工具包957
25.8.2UTL_LMS异常处理包960
25.8.3GDK实现选项961
第26章PL/SQL的面向对象特性963
26.1Oracle对象特性的介绍963
26.2对象类型示例965
26.2.1创建一个基类966
26.2.2创建子类型967
26.2.3方法968
26.2.4在Oracle数据库11g及以后版本中调用父类的方法972
26.2.5保存、提取、使用持久化对象974
26.2.6演变和创建981
26.2.7回到指针吗?983
26.2.8泛化数据:ANY类型989
26.2.9我们自己做993
26.2.10对象的比较996
26.3对象视图1001
26.3.1一个关系型系统的示例1002
26.3.2带有集合属性的对象视图1003
26.3.3对象子视图1006
26.3.4带有反关系的对象视图1008
26.3.5INSTEADOF触发器1008
26.3.6对象视图和对象表的区别1010
26.4维护对象类型和对象视图1012
26.4.1数据字典1012
26.4.2权限1013
26.5来自一个关系开发者的总结思考(C551,E1200)1015
第27章从PL/SQL中调用Java1017
27.1Oracle和Java1017
27.2准备好在Oracle中使用Java1018
27.2.1安装Java1019
27.2.2创建和编译Java代码1019
27.2.3设置Java开发和执行的权限1020
27.3一个简单的演示1022
27.3.1查找Java功能1023
27.3.2创建一个自定义Java类1023
27.3.3编译和加载到Oracle1025
27.3.4创建一个PL/SQL的包装器1026
27.3.5从PL/SQL删除文件1027
27.4使用loadjava1028
27.5使用dropjava1030
27.6管理数据库中的Java1030
27.6.1Oracle中的Java命名空间1030
27.6.2检查加载的Java元素1031
27.7使用DBMS_JAVA1032
27.7.1LONGNAME:转换Java长名字1032
27.7.2GET_、SET_和RESET_COMPILER_OPTION:得到和设置(一些)编译器选项1033
27.7.3SET_OUTPUT:允许从Java中输出1034
27.7.4EXPORT_SOURCE、EXPORT_RESOURCE和EXPORT_CLASS:导出模式对象1034
27.8在PL/SQL中发布与使用Java1036
27.8.1调用规范1036
27.8.2一些调用规范的规则1037
27.8.3映射数据类型1038
27.8.4在SQL中调用Java方法1039
27.8.5Java的异常处理1040
27.8.6扩展文件I/O功能1042
27.8.7其他示例1046
第28章外部过程1049
28.1外部过程介绍1050
28.1.1示例:调用一个系统命令1050
28.1.2外部过程的架构1052
28.2Oracle网络配置1053
28.2.1定义配置1053
28.2.2配置的安全特性1055
28.3设置多线程模式1056
28.4创建一个Oracle库1058
28.5编写调用规范1059
28.5.1调用规范:整体语法1060
28.5.2参数映射:示例重温1061
28.5.3参数映射:完整的内容1063
28.5.4更多的语法:参数子句1064
28.5.5参数属性1065
28.6从调用的C程序中引发一个异常1068
28.7非默认的代理1071
28.8维护外部过程1073
28.8.1删除库1073
28.8.2数据字典1074
28.8.3规则和警示1074
附录A正则表达式元字符和函数参数1075
附录B数字格式模型1080
附录C日期格式模型1083






















































































































































































































































































































































































































































































































































































































































































































































































《Oracle PL/SQL程序设计(第6版)》基于Oracle数据库12C,从用PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、构造PL/SQL应用程序、不错PL/SQL主题这6个方面详细而系统地讨论了PL/SQL以及如何有效地使用它。本书能够帮助你充分利用PL/SQL来解决数据库开发中遇到的各种问题,引导你掌握各种构建应用的技巧和技术,以便使你编写出高效、可维护的代码。本书不但介绍了大量Oracle数据库12C的PL/SQL新性能,还提供了许多优化PL/SQL性能的新方法。
《Oracle PL/SQL程序设计(第6版)》结构清晰,示例丰富,实践性强,适用于Oracle数据库开发人员、Oracle数据库管理员等相关数据库从业人员,也可以作为各大、中专院校相关专业师生的参考用书和相关培训机构的培训教材。

暂无相关内容

史蒂芬·弗伊尔斯坦,被尊为Oracle PL/SQL语言的世界ji专家。他是本书上一版、Oracle PL/SQL Best Practices、Oracle PL/SQL Programming: Guide to Oracle8i Features、Oracle PL/SQL Developer’s Workbook、Oracle Built-in Package、Advanced Oracle PL/SQL Programming with Packages以及多本口袋参考书(均由O’Reilly Media出版)的作者或合著者。Steven还是Quest Software的zi深技术顾问,从1980年就开始从事软件的开发工作,并于1987~1992年在Oracle公司工作。
比尔·普里比尔,是Learning Oracle PL/SQL的主要作者、本书上一版以及配套口袋参考书(均由O’Reilly Media出版)的合著者。目前他在一家靠前贸易公司内担任一个编程小组的负责人。Bill曾经使用PL/SQL编写TCP/IP网络客户端、tnsping呼出工具、近于实时的商品价格加载器以及函数等。Bill拥有Rice大学的物理学学位。在业余时间里,Bill的大部分精力都用来照顾罹患炎性乳腺癌的妻子。



探索数据处理的强大引擎:Oracle PL/SQL 编程的深度之旅 在信息爆炸的时代,数据已成为企业最宝贵的资产。而驾驭这些海量数据,实现高效、灵活的业务逻辑,离不开强大的数据库编程语言。Oracle PL/SQL,作为 Oracle 数据库的核心过程化扩展语言,凭借其卓越的性能、丰富的特性和广泛的应用,早已成为数据库开发领域的翘楚。本书,将带您深入 Oracle PL/SQL 的世界,从基础概念到高级技巧,全方位解锁其潜能,助您成为游刃有余的数据库专家。 一、 PL/SQL 的基石:理解与掌握核心概念 本书将从 PL/SQL 的基本构成单元出发,为您奠定坚实的基础。您将系统学习: PL/SQL 块结构: 理解 `DECLARE`、`BEGIN`、`EXCEPTION` 和 `END` 语句块的逻辑关系,学会如何组织结构化、可读性强的 PL/SQL 代码。从简单的匿名块到可重用的命名块(存储过程、函数、包),逐步掌握代码的封装与复用。 数据类型: 深入理解 Oracle 提供的丰富数据类型,包括标量类型(数值型、字符型、日期型、布尔型等)、复合类型(记录类型、集合类型)以及 LOB 类型。了解不同数据类型的特性、存储方式以及在 PL/SQL 中的应用场景,避免因数据类型选择不当而导致的错误和性能问题。 变量与常量: 掌握变量的声明、赋值与使用,以及常量的定义与约束。理解变量的作用域和生命周期,确保数据在程序中的正确传递与管理。 控制结构: 熟练运用 PL/SQL 中的各种控制结构,实现程序的逻辑分支与循环。重点掌握 `IF-THEN-ELSIF-ELSE` 条件判断、`CASE` 表达式的灵活运用,以及 `LOOP`、`WHILE LOOP`、`FOR LOOP` 等循环结构的有效构建,以应对复杂的业务流程。 SQL 语句在 PL/SQL 中的集成: 这是 PL/SQL 的核心优势之一。您将学习如何将 DML(`INSERT`、`UPDATE`、`DELETE`)和 DDL(`CREATE`、`ALTER`、`DROP`)语句无缝集成到 PL/SQL 块中,实现数据的高效处理。特别关注 `SELECT INTO` 语句的正确使用,以及处理多行数据的方法,例如使用游标。 游标 (Cursor): 游标是 PL/SQL 处理多行数据的关键。本书将详细讲解显式游标和隐式游标的创建、打开、读取、关闭过程。掌握显式游标的属性(如 %FOUND, %NOTFOUND, %ROWCOUNT, %ISOPEN),以及如何使用 `FOR UPDATE` 子句锁定行,实现并发控制。 异常处理: 编写健壮的 PL/SQL 程序离不开有效的异常处理机制。您将学习预定义异常和用户自定义异常的声明与处理,理解 `EXCEPTION` 块的强大功能,如何捕获、记录和处理运行时错误,提高程序的稳定性和可靠性。 二、 进阶之旅:构建高效、可维护的 PL/SQL 应用 在掌握了基础知识后,本书将带领您进入 PL/SQL 的进阶领域,学习如何构建更强大、更具维护性的应用程序: 存储过程 (Stored Procedures) 和函数 (Functions): 深入理解存储过程和函数的概念、创建、调用和参数传递。学习如何通过创建可重用的存储过程和函数来封装业务逻辑,提高代码的可维护性和复用性。探讨 IN、OUT、IN OUT 参数的不同用法。 包 (Packages): 包是 PL/SQL 中实现模块化和信息隐藏的重要机制。您将学习如何创建和使用包来组织相关的存储过程、函数、变量和常量,提高代码的结构化程度,并实现更精细的权限控制。 触发器 (Triggers): 触发器是响应数据库事件(如 INSERT、UPDATE、DELETE)自动执行的 PL/SQL 代码。本书将详细讲解触发器的类型(行级触发器、语句级触发器)、触发时机(BEFORE、AFTER)、触发顺序,以及如何在审计、数据验证、维护数据一致性等方面有效地使用触发器。 动态 SQL (Dynamic SQL): 掌握使用 `EXECUTE IMMEDIATE` 和 `DBMS_SQL` 包执行动态 SQL 的方法。了解何时使用动态 SQL(例如,当 SQL 语句的结构在编译时未知时),以及如何正确地构建和执行动态 SQL,同时需要警惕 SQL 注入的风险。 集合类型 (Collection Types): 深入理解 PL/SQL 中的集合类型,包括关联数组(Associative Arrays/Index-by Tables)、嵌套表(Nested Tables)和变长数组(Varrays)。学习如何使用集合来存储和处理一组相关数据,提高代码的效率和简洁性。 记录类型 (Record Types): 学习如何定义和使用记录类型来模拟表行或组织一组相关字段,简化复杂数据结构的声明和操作。 对象类型 (Object Types) 和集合类型 (Collection Types) 的高级应用: 探索 Oracle 数据库对象特性与 PL/SQL 的结合,理解如何创建和操作对象类型,以及如何利用集合类型进行复杂数据结构的建模和处理。 调用外部程序: 学习如何使用 `UTL_FILE` 包读取和写入操作系统文件,以及如何通过 Oracle Net Services 调用外部的 Java 存储过程或外部程序(如 Shell 脚本),实现更广泛的集成。 三、 性能优化与高级主题:打造卓越的 PL/SQL 性能 仅仅编写能够工作的 PL/SQL 代码是不够的,本书将重点关注如何写出高性能、可扩展的 PL/SQL 程序: SQL 调优与 PL/SQL 结合: 深入理解 SQL 语句在 PL/SQL 中的执行效率。学习如何使用解释执行计划(Explain Plan)、SQL Trace 和 TKPROF 工具来分析 SQL 语句的性能瓶颈。掌握避免在循环中执行 SQL、使用批量操作(Bulk Collect 和 FORALL)等技巧来提高 SQL 执行效率。 PL/SQL 性能优化技巧: 掌握 PL/SQL 代码本身的性能优化方法,例如减少不必要的上下文切换、合理使用游标、避免过度使用变量、优化集合操作等。 PL/SQL 集合类型与 SQL 的高效结合: 深入探讨 `BULK COLLECT` 和 `FORALL` 语句,它们是 PL/SQL 处理大量数据的核心利器,能够显著减少 SQL 和 PL/SQL 之间的上下文切换,大幅提升数据处理性能。 自治事务 (Autonomous Transactions): 理解自治事务的概念和应用场景,例如在审计、日志记录或事务回滚时,如何使用 `PRAGMA AUTONOMOUS_TRANSACTION` 来创建独立于主事务的子事务。 DBMS_OUTPUT 和 DBMS_DEBUG: 学习如何使用 `DBMS_OUTPUT` 包进行调试输出,以及如何利用 `DBMS_DEBUG` 包进行更高级的在线调试,定位和解决程序中的错误。 PL/SQL 内部函数和包: 介绍一些常用的 Oracle 内置 PL/SQL 包,如 `DBMS_JOB`(用于调度作业)、`DBMS_SESSION`(用于会话管理)、`DBMS_LOCK`(用于锁管理)等,并讲解其在实际应用中的用法。 分布式事务和锁机制: 探讨 PL/SQL 在分布式环境下的应用,包括如何处理分布式事务,以及如何使用 Oracle 的锁机制来保证数据的一致性。 安全编程: 关注 PL/SQL 的安全方面,学习如何编写防范 SQL 注入、越权访问等安全漏洞的代码。 四、 实践为王:案例分析与工程化实践 理论与实践相结合是掌握 PL/SQL 的关键。本书将提供丰富的实际案例,涵盖各种常见场景,例如: 数据迁移与清洗: 编写 PL/SQL 脚本实现复杂的数据迁移、格式转换和数据质量检查。 报表生成: 利用 PL/SQL 生成定制化的、复杂的报表。 批处理作业: 设计和实现高性能的批处理程序,自动化执行日常的数据处理任务。 系统集成: 通过 PL/SQL 与其他系统进行数据交互和流程协调。 业务逻辑实现: 将复杂的业务规则和计算逻辑封装在 PL/SQL 中。 通过对这些案例的深入剖析,您将不仅学习到具体的 PL/SQL 代码实现,更能领悟到解决实际问题的思路和方法,提升工程实践能力。 谁适合阅读本书? 无论您是初涉数据库开发的新手,希望系统学习 PL/SQL 的入门者;还是已经具备一定 PL/SQL 基础,渴望提升技能,掌握高级技巧和性能调优方法的在职开发者;亦或是需要深入理解 Oracle 数据库内部机制,优化应用性能的数据库管理员,本书都将是您不可或缺的参考。 阅读本书,您将获得: 扎实的 PL/SQL 基础: 从零开始,逐步构建完整的 PL/SQL 知识体系。 实用的编程技巧: 掌握编写高效、健壮、可维护的 PL/SQL 代码的方法。 解决复杂问题的能力: 能够运用 PL/SQL 应对各种实际的数据库开发挑战。 深入的性能优化洞察: 了解如何诊断和解决 PL/SQL 程序的性能瓶颈。 成为更出色的 Oracle 数据库开发者: 提升职业竞争力,在数据库领域脱颖而出。 准备好踏上这场 PL/SQL 的深度探索之旅了吗?本书将是您最忠实的向导,助您在 Oracle PL/SQL 的世界中乘风破浪,成为一名真正的数据处理专家!

用户评价

评分

作为一个在 Oracle 数据库领域摸爬滚打多年的老兵,我深知一本优秀的参考书对于提升开发效率和解决疑难杂症的重要性。这次有幸获得《正版 Oracle PL/SQL 程序设计(第6版)》,让我眼前一亮。 这本书的体量就足以说明其内容的详实程度,上下册的配置,预示着它将带领读者进行一场深入 PL/SQL 世界的全面探索。我粗略地浏览了一下章节标题,涵盖了从基础概念到高级应用,从性能调优到安全实践,几乎无所不包。 我最期待的是书中对 Oracle 数据库新特性的解读和应用,以及作者在实际开发过程中积累的宝贵经验。我希望这本书能像一位资深的导师,不仅教授我“怎么做”,更能告诉我“为什么这样做”,以及在不同的场景下,选择哪种方法最合适。

评分

这本书终于到手了!我等了很久,从亚马逊预订到发货,再到今天捧在手里,那种激动的心情难以言表。封面设计一如既往的简洁大气,我喜欢这种低调的专业感。打开包装,厚实的纸张和清晰的排版瞬间让人心情愉悦。我迫不及待地翻开第一页,虽然还没开始深入阅读,但仅仅是扫视目录和前言,我就能感受到作者在知识深度和广度上的用心。 Oracle PL/SQL 编程语言,对于许多开发者来说,是数据库开发绕不开的一环。我之前断断续续地接触过一些 PL/SQL 的内容,但总感觉零散且不成体系。这次选择这本《正版 Oracle PL/SQL 程序设计(第6版)》,正是希望能够系统地梳理和巩固我的 PL/SQL 知识。虽然具体内容还没细看,但我对它寄予厚望,希望它能像一位经验丰富的老师,循序渐进地带领我掌握 PL/SQL 的精髓。 拿到这套书,我最直观的感受就是它的“分量”。上下两册,厚实而沉甸甸的,仿佛承载着 Oracle PL/SQL 领域海量的知识宝藏。我非常欣赏这种“厚积薄发”的出版方式,意味着内容不会过于简略,而是有足够的篇幅去深入剖析每一个概念,每一个函数,每一个技巧。 对于我这种初学者来说,最怕的就是晦涩难懂的术语和跳跃式的讲解。从这套书的初步印象来看,它似乎能够很好地解决这个问题。

评分

拿到《正版 Oracle PL/SQL 程序设计(第6版)》(上下册)的那一刻,我的心就被一种沉甸甸的期待感填满了。我一直认为,在 Oracle 数据库开发的世界里,PL/SQL 就像是连接数据和业务逻辑的桥梁,掌握了它,才能真正驾驭数据库的力量。 这本书的厚度就足以让我感觉到内容的扎实,上下两册,足以容纳作者多年的心血和宝贵的经验。我初步翻阅了一下,排版清晰,字体适中,非常适合长时间阅读。 我特别欣赏的是,这本书的定位是“程序设计”,这说明它不仅仅是枯燥的语法罗列,更注重的是如何将这些语法转化为高效、健壮的应用程序。 我期待书中能够有大量的实际案例,能够让我学习到如何在真实的项目中运用 PL/SQL,解决实际遇到的问题。

评分

这本书的到手,对于我这个正在努力提升 Oracle PL/SQL 技能的开发者来说,无疑是及时雨。我一直觉得,想要在数据库开发领域有所建树,扎实的 PL/SQL 功底是必不可少的。 《正版 Oracle PL/SQL 程序设计(第6版)》给我的第一印象是它的专业性和全面性。我看了看目录,内容非常丰富,感觉涵盖了从入门到精通的各个环节。 尤其吸引我的是“第6版”这个标签,意味着它应该包含了 Oracle PL/SQL 最新的特性和最佳实践。在这个快速发展的技术时代,一本能够与时俱进的书籍显得尤为珍贵。 我个人比较关注书中在性能优化和疑难解答方面的论述,因为在实际工作中,这些方面往往是挑战最大的地方。

评分

终于入手了心心念念的 Oracle PL/SQL 巨著!自从踏入数据库开发这个领域,PL/SQL 就成了我绕不开的“硬骨头”。虽然市面上关于 PL/SQL 的书籍不少,但真正能够做到深入浅出、条理清晰的却寥寥无几。这次收到《正版 Oracle PL/SQL 程序设计(第6版)》,感觉就像是找到了“圣经”。 我之前尝试过一些在线教程和零散的文章,但总觉得碎片化,缺乏系统性。而这套书,从封面设计到书脊上的标题,都散发出一种“干货满满”的气息。我迫不及待地翻阅了一下目录,简直是太全面了!从基础语法到高级特性,从性能优化到错误处理,几乎涵盖了 PL/SQL 开发的方方面面。 我尤其看重的是它“第6版”的更新。Oracle 的技术更新迭代非常快,一本过时的书籍会误导开发者。所以我选择最新的版本,就是为了能够学习到最前沿、最实用、最符合当前 Oracle 数据库环境下的 PL/SQL 编程知识。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有