数据库系统原理-第九章服务器环境下的SQL剖析
* 4. PSM中select-from-where查询方式 (4)声明和使用游标。下面几点是不同的: 语句中不出现EXEC SQL 局部变量不使用冒号前缀 使用游标的例子将被延迟到下一节学习了PSM循环语句之后 * 5. PSM中的LOOP循环 LOOP 语句列表 END LOOP; 若对LOOP语句设置循环标识,可使用下面的语句中断循环: LEAVE循环标识; 循环中可用游标读取元组,当没有更多元组时,就希望离开这个循环。对于表示没有找到元组的SQLSTATE值( ‘02000’),可以定义一个条件名: DECLARE Not_Found CONDITION FOR SQLSTATE ’02000’; 更一般地,可以用如下语句声明表示任何希望与SQLSTATE值相对应的标识作为条件: DECLARE 名字 CONDITION FOR SQLSTATE 值; * PSM循环示例 本例的PSM过程将电影公司名称s作为输入参数,并且用输出参数mean和variance给出电影公司s拥有的所有电影长度的平均值和方差。 Page * * 6.PSM中的FOR循环 PSM中的FOR循环结构,唯一重要的目的是游标的迭代。 * FOR循环示例 Page * * PSM中的其他循环 PSM中也有while和repeat循环,其含义与C相同。也就是说,可以创建如下形式的循环 WHILE条件DO 语句列表 END WHILE; 或者这种形式的循环: REPEAT 语句列表 UNTIL条件 END REPEAT; * 7. PSM的异常处理 SQL系统通过在长为5个字符的字符串SQLSTATE变量中设置非零数字序列来表明错误条件。例如: ‘02000’表示“没有找到元组” ‘21000’表示单元组选择返回了多个元组 PSM可以声明称为异常处理的代码。即在语句或语句组执行过程中,当错误代码列表中的任何一个出现在SQLSTATE中时,就调用异常处理。 * 异常处理的组成 每一个异常处理都和一个由BEGIN…END描述的代码块有关。处理过程出现在代码块中,并且仅仅针对代码块中的语句。 异常处理的组成 一组异常条件:当这些条件成立时调用异常处理 当异常发生时,与该异常相关联的执行代码 指明处理器完成处理后的转移去处。 * 异常处理声明的形式 DECLARE 转移方式 HANDLER FOR 条件列表 语句 转移方式有3种选择: CONTINUE:表示执行异常处理声明中的语句之后,继续执行产生异常的语句之后的那条语句。 EXIT:表示执行异常处理语句后,控制离开声明异常处理的BEGIN…END块,下一步执行该代码块之后的语句 UNDO:与EXIT差不多,区别在于到目前为止,已执行的该块语句对数据库或局部变量产生的变化都被撤消 条件列表由逗号分隔的条件的列表,可以是被声明的条件,也可以是SQLSTATE和5位字符串的表达式。 * 异常示例 编写一个PSM函数,以电影片名作为参数,返回电影的年份。如果该片名的电影不存在或是不止一个的 话,则返回NULL。 如果有多条语句,则放在BEGIN…END之间 * 8. 使用PSM函数和过程 在嵌套的SQL程序、PSM代码或提供给基本界面的普通SQL命令中都可调用PSM函数和过程 用保留字CALL作为前缀来调用过程 函数作为表达式的一部分出现 * 使用PSM函数和过程的示例 假定模式中包括了具有GetYear函数的模块。想象面对基本界面,准备输入Denzel Washington是Remember the Titans中的影星这个事实。但却忘记了电影年份。 只要这个名称的电影只有一部,并且它在关系Movies中,那么就不必通过预先查询去找出该年份。而且,可以将下面的语句插入到基本SQL界面中: Page * 练习 P.241/9.4.1/a) Create Function presNetWorth (studioName Char(15)) Returns Integer Declare presNetWorth Int; Begin Select netWorth Into presNetWorth From Studio, MovieExec W
您可能关注的文档
最近下载
- 2025《麻江县蓝莓产业发展现状调研分析报告》4900字.docx
- 2026年国网安全管理方案.docx VIP
- 2025年北京师范大学学科教学培养方案 .pdf VIP
- 初级消防试题及答案大全.docx VIP
- 核医学教学课件:血液和淋巴显像.ppt VIP
- 重庆市各地方周氏支族源流(1-170支族).doc VIP
- 建筑工程质量管理体系流程图.docx
- 淋巴系统核医学检查课件.ppt VIP
- (高清版)B-T 6003.1-2022 试验筛 技术要求和检验 第1部分:金属丝编织网试验筛.pdf VIP
- (已压缩)TUCST007-2020房屋建筑与市政基础设施工程施工安全风险评估技术标准.docx VIP
原创力文档

文档评论(0)