- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章编写可执行的语句
编写可执行的语句 本章的目的 完成本章之后,我们可以掌握以下的内容: 认识可执行部分的重用性 在可执行部分编写语句 嵌套块的规则 测试与执行一个 PL/SQL 块 标写代码的惯例 PL/SQL 块的语法与指导方针 一个语句可以扩越几行 标示符与文字可以用一个或几个空格隔开 PL/SQL 块的语法与指导方针 标示符 最多可以有30个字符 不能用保留字,除非用双引号包括起来 必须以字母开头 不要与数据库表的列名相同 PL/SQL 块的语法与指导方针 字符与日期必须包含在单引号里面. 数字可以用科学记数法. 注释 在单一行的注释前面加两个中横线 (- -). 把多行的注释包含在符号 /*和 */之间. 例子 PL/SQL中的SQL函数 可用: Single-row number Single-row character Datatype conversion Date 不可用: GREATEST LEAST DECODE Group functions PL/SQL 函数 例子 建立一个公司的邮件列表. 转换为小写. 数据类型转换 转换数据到不同的类型. 数据类型不同可能会引起错误或影响性能. 数据转换函数: TO_CHAR TO_DATE TO_NUMBER 数据类型转换 嵌套块与变量的范围 在可执行语句里面允许我们使用嵌套块 一个嵌套块变成一个语句. 例外处理部分也可以包含嵌套块. 对象的范围是指程序能够访问到它的区域. 嵌套块与变量的范围 一个标示符在它被定义的块及所有嵌套的块都是可见的: 如果一个块在本地找不到标示符,那末它会向上从它的父块的定义部分找 一个块无法向下从它的子块里面找标示符 嵌套块与变量的范围 ... x BINARY_INTEGER; BEGIN ... DECLARE y NUMBER; BEGIN ... END; ... END; PL/SQL里面的操作符 逻辑 算术 窜连(Concatenation) 圆扩号改变操作顺序 指数运算符 (**) PL/SQL里面的操作符 例子 增加循环索引的值. 设定布尔值. 校验一个变量是否为空. 使用绑定变量(Bind Variables) 如果要在 PL/SQL里面使用绑定变量, 必须在名称前面加冒号(:). 例子 编写代码的指导 让代码维护更为简单: 加上注释 用统一的大小写的约定 给标示符与其它对象一个统一的命名约定 透过缩行来提高程序的可读性 缩行 例子 总结 PL/SQL 块的结构: 嵌套块与编码的规则 PL/SQL程序的编写: 函数 数据类型的转换 操作符 绑定变量 约定与指导方针 17-* 2 v_ename := Henderson; ... v_sal NUMBER (9,2); BEGIN /* Compute the annual salary based on the monthly salary input from the user */ v_sal := v_sal * 12; END; -- This is the end of the transaction Same as in SQL } v_mailing_address := v_name||CHR(10)|| v_address||CHR(10)||v_state|| CHR(10)||v_zip; v_ename := LOWER(v_ename); BEGIN SELECT TO_CHAR(hiredate, MON. DD, YYYY) FROM emp; END; 这个语句将产生一个编译的错误. v_comment := USER||: ||SYSDATE; v_comment := USER||: ||TO_CHAR(SYSDATE); 用 TO_CHAR 函数改正这个错误. Scope of x Scope of y Example 与 SQL一样 } v_count := v_count + 1; v_equal := (v_n1 = v_n2); v_valid := (v_empno IS NOT NULL); DECLARE v_sal emp.sal%TYPE; BEGIN SELECT sal INTO v_sal FROM emp WHERE empno = 7369; :salary := v_sal; END; BEGIN IF x=0 THEN y=1; END IF; END; DEC
文档评论(0)