300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > oracle如何实现动态字段别名 – 数据库 – 前端

oracle如何实现动态字段别名 – 数据库 – 前端

时间:2022-10-19 21:53:49

相关推荐

oracle如何实现动态字段别名 – 数据库 – 前端

在PLSQL中使用EXECUTEIMMEDIATE语句处理动态SQL语句。

语法如下:

EXECUTEIMMEDIATEdynamic_string

[INTO{define_variable[,define_variable]…|record}]

[USING[IN|OUT|INOUT]bind_argument

[,[IN|OUT|INOUT]bind_argument]…]

[{RETURNING|RETURN}INTObind_argument[,bind_argument]…];

dynamic_string是代表一条SQL语句或一个PL/SQL块的字符串表达式,

define_variable是用于存放被选出的字段值的变量,

record是用户定义或%ROWTYPE类型的记录,用来存放被选出的行记录。

输入bind_argument参数是一个表达式,它的值将被传入(IN模式)或传出(OUT模式)或先传入再传出(INOUT模式)到动态SQL语句或是PL/SQL块中。一个输出bind_argument参数就是一个能保存动态SQL返回值的变量。

除了多行查询外,动态字符串可以包含任何SQL语句(不含终结符)或PL/SQL块(含终结符)。

字符串中可以包括用于参数绑定的占位符。

但是,不可以使用绑定参数为动态SQL传递模式对象。

在用于单行查询时,INTO子句要指明用于存放检索值的变量或记录。

对于查询检索出来的每一个值,INTO子句中都必须有一个与之对应的、类型兼容的变量或字段。

在用于DML操作时,RETURNINGINTO子句要指明用于存放返回值的变量或记录。

对于DML语句返回的每一个值,INTO子句中都必须有一个与之对应的、类型兼容的变量或字段。

大家可以把所有的绑定参数放到USING子句中。默认的参数模式是IN。

对于含有RETURNING子句的DML语句来说,大家可以把OUT参数放到RETURNINGINTO之后,并且不用指定它们的参数模式,因为默认就是OUT。

如果大家既使用了USING又使用RETURNINGINTO,那么,USING子句中就只能包含IN模式的参数了。

运行时,动态字符串中的绑定参数会替换相对应的占位符。所以,每个占位符必须与USING子句和/或RETURNINGINTO子句中的一个绑定参数对应。大家可以使用数字、字符和字符串作为绑定参数,但不能使用布尔类型(TRUE,FALSE和NULL)。要把空值传递给动态字符串,大家就必须使用工作区。

动态SQL支持所有的SQL类型。所以,定义变量和绑定变量都可以是集合、LOB,对象类型实例和引用。

作为一项规则,动态SQL是不支持PL/SQL特有的类型的。这样,它就不能使用布尔型或索引表。

大家可以重复为绑定变量指定新值执行动态SQL语句。但是,每次都会消耗很多资源,因为EXECUTEIMMEDIATE在每次执行之前都需要对动态字符串进行预处理。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。