购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 基本执行语句

PL/SQL的基本执行语句包括赋值语句、查询语句、DML语句、RETURN语句、GOTO语句、NULL语句等。

1.赋值语句

声明变量后,可以通过以下两种方式为其赋值。

(1)使用赋值语句将表达式赋值给变量。

(2)使用SELECT INTO或FETCH语句从table中赋值给变量。

将表达式的值赋给变量,语法声明如下。

SELECT INTO语句的一种简单形式如下。

需要注意的是,变量和值必须具有兼容的数据类型。如果一种数据类型可以隐式转换为另一种数据类型,那么它与另一种数据类型必须兼容。

2.查询语句

查询语句(SELECT)是从一个或更多表中返回记录行。与标准的SELECT语句不同,在PL/SQL程序中,SELECT语句需要与INTO或BULK COLLECT INTO短语结合使用,将查询结果保存到变量中。针对单条和多条记录的查询有以下两种方式。

(1)SELECT INTO:单条记录的查询。

(2)SELECT BULK COLLECT INTO:多条记录的查询。

INTO句子后的变量用于接收查询的结果,变量的个数、顺序应该与查询的目标数据相匹配,也可以是记录类型的变量。

3.DML语句

PL/SQL中的DML语句对标准SQL语句中的DML语句(如INSERT、UPDATE、DELETE、MERGE)进行扩展,允许使用变量。有关语法请参阅金仓在线帮助文档。

4.RETURN语句

RETURN语句用于立即结束子程序或包含它的匿名块的执行。

在函数中,RETURN语句将指定的值分配给函数标识符,并将控制权返回给调用者,调用者调用后立即恢复执行(可能在调用语句内)。函数中的每个执行路径都必须指向一个RETURN语句,否则PL/SQL运行时会报错。

在过程中,RETURN语句将控制权返回给调用者,调用后立即恢复执行。在匿名块中,RETURN语句退出它自己的块和所有封闭块。

一个子程序或匿名块可以包含多个RETURN语句。

5.GOTO语句

GOTO语句无条件地将控制跳转到标签。标签在其范围内必须是唯一的,并且必须位于可执行语句或PL/SQL块之前。运行时,GOTO语句将控制跳转到带标签的语句或块。

需要谨慎使用GOTO语句,过度使用它们将导致代码难以理解和维护。不要使用GOTO语句将控制从深度嵌套的结构跳转到异常处理程序,这将引发异常。有关PL/SQL异常处理机制的信息,请参阅PL/SQL异常处理。

对GOTO声明的限制如下。

(1)如果GOTO语句过早退出FOR LOOP语句,游标将关闭。

(2)GOTO语句不能将控制转移到IF语句、CASE语句、LOOP语句或子块中。

(3)GOTO语句不能将控制从一个IF语句子句转移到另一个语句,或者从一个CASE语句转移到另一个语句。

(4)GOTO语句不能将控制转移出子程序。

(5)GOTO语句不能将控制转移到异常处理程序中。

(6)GOTO语句不能将控制从异常处理程序转移到当前块中(但它可以将控制从异常处理程序转移到封闭块中)。

语法格式如下。

6.NULL语句

NULL语句只将控制权传递给下一条语句,一些语言将这样的指令称为无操作。

NULL语句的用途包括如下几项。

(1)为GOTO语句提供目标。

(2)通过明确条件语句的含义和动作来提高可读性。

(3)创建占位符和存根子程序。

(4)表明开发人员意识到某种可能性,但无须采取任何行动。

示例2.6: 综合性示例。

功能描述: 根据id判断记录是否存在,如果存在,则添加,否则更新相关记录;删除记录时应该先判断是否存在。

程序代码如下。

程序运行结果如下。 yKvHTvBhePwWGoBen4FFF7CabCafk4hgI9RHePJBGhJ6E6pYCmtf8fk4Lu23aepZ

点击中间区域
呼出菜单
上一章
目录
下一章
×