EXECUTE IMMEDIATE
语法图请参见图18-7。
图18-7 EXECUTE IMMEDIATE dynamic_select_clause::=
using_clause 子句的语法图参见图18-8。
图18-8 using_clause::=
GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
638
对以上语法格式的解释如下:
define_variable:用于指定存放单行查询结果的变量。
USING IN bind_argument :用于指定存放传递给动态SQL 值的变量,即在
dynamic_select_string 中存在占位符时使用。
USING OUT bind_argument:用于指定存放动态SQL 返回值的变量。
须知
查询语句中,into 和out 不能同时存在;
占位符命名以“:”开始,后面可跟数字、字符或字符串,与USING 子句的
bind_argument 一一对应;
bind_argument 只能是值、变量或表达式,不能是表名、列名、数据类型等数
据
库对象,
即不支持使用bind_argument 为动态SQL 语句传递模式对象。
如果存储过
程需要通过声明参数传递数据库对象来构造动态SQL 语句
(常见于执行DDL 语句
时),建议采用连接运算符“||”拼接dynamic_select_clause;
动态PL/SQL 块允许出现重复的占位符,即相同占位符只能与USING 子句的一个
bind_argument 按位置对应。