动态sql与变量绑定

Posted atomy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态sql与变量绑定相关的知识,希望对你有一定的参考价值。

    有时候动态sql需要进行变量的赋值,这个时候就需要调用系统的存储过程sp_executesql了。使用中还是有些注意事项,代码如下:

--字符型字段需声明为NVARCHAR类型
DECLARE @STRSQL NVARCHAR(1000),@VALUE_STR NVARCHAR(254)
--动态SQL拼接
SET @STRSQL=SELECT @VALUE_STR=ISNULL(VALUE_STR,‘‘‘‘) FROM [Mast+ADMIN+@Prop_Fld] WHERE FORM_NAME=‘‘INVHAFORM‘‘ AND PROP_NAME=‘‘PEROUTQTY‘‘‘
--测试SQL拼接结果
PRINT @STRSQL
--N‘@VALUE_STR NVARCHAR(254) OUTPUT‘为动态SQL中变量的声明,@VALUE_STR OUTPUT为接收变量,注意都需带上OUTPUT参数。
EXEC SP_EXECUTESQL @STRSQL,N@VALUE_STR NVARCHAR(254) OUTPUT,@VALUE_STR OUTPUT
--测试变量结果
PRINT @VALUE_STR

    执行结果如下:

    技术图片

 

以上是关于动态sql与变量绑定的主要内容,如果未能解决你的问题,请参考以下文章

动态 SQL 中绑定变量的限制

动态 SQL 不存在绑定变量

Oracle - 如何使用动态绑定参数定义动态 SQL?

为啥我不能在动态 SQL 的 DDL/SCL 语句中使用绑定变量?

如何使用绑定变量使整个 PL/SQL 代码块动态化?

Oracle - 如何使用动态绑定参数定义动态SQL?