存储过程中执行sql字符串,给存储过程的变量赋值
来源:互联网 发布:2017网络剧上映时间表 编辑:程序博客网 时间:2024/04/27 14:41
今天遇到一个问题,需要在存储过程中执行一段sql字符串,并且需要给存储过程的变量赋值。
开始写的代码如下:
create proc PROC_test
@tablename varchar(20),
@userName varchar(10) output
as
delcare @baseSql varchar(8000)
set @baseSql='select @userName=name from '+@tablename
@tablename varchar(20),
@userName varchar(10) output
as
delcare @baseSql varchar(8000)
set @baseSql='select @userName=name from '+@tablename
exec(@baseSql)
print @userName
print @userName
上面代码就会报错:必须声明标量变量 "@typeName,原因是exec 执行的字符串是一个单独的整体, @userName并没有在字符串中定义。后来在以前的存储过程中找到了解决方法,利用系统自带的拓展存储过程 sp_executesql可以解决需求,sp_executesql @Sql,N'@userName varchar(80) OUTPUT',@userName OUTPUT -- 参数:1、sql语句;2、定义输出参数;3、接收输出参数
正确的代码如下:
正确的代码如下:
create proc PROC_test
as
declare @baseSql nvarchar(4000)--类型为ntext/nchar/nvarchar 的参数
,@userName varchar(80)
set @baseSql='select top 1 @userName=typeName from T_Ent_Type'
EXEC sp_executesql @baseSql,N'@userName varchar(80) OUTPUT',@userName OUTPUT -- 参数:1、sql语句;2、定义输出参数;3、接收输出参数
print @userName
- 存储过程中执行sql字符串,给存储过程的变量赋值
- oralce存储过程拼接sql字符串,并执行sql字符串给变量赋值
- 在存储过程中 给变量赋值
- sql 存储过程 变量赋值
- oracle在存储过程中给变量赋值
- oracle在存储过程中给变量赋值
- ORACLE存储过程给变量赋值
- mysql存储过程,select 给变量赋值
- SQL SERVER 存储过程中SELECT 返回值如何赋值给变量
- 存储过程中执行拼接的字符串sql
- Oracle存储过程给变量赋值的方法
- 存储过程中执行存储过程,并把结果赋值给output参数
- 执行字符串SQL语句--带有参数的存储过程以及 int类型的字符串变量注意事项
- 在SQL存储过程中给条件变量加上单引号
- mysql 存储过程中变量的定义与赋值操作
- mysql 存储过程中变量的定义与赋值操作
- sql server存储过程中SELECT 与 SET 对变量赋值的区别
- sql server存储过程中SELECT 与 SET 对变量赋值的区别
- select into 和 insert into select 两种表复制语句
- 指针和数组
- Android查询联系人群组成员及号码
- xterm配置
- 魔棍
- 存储过程中执行sql字符串,给存储过程的变量赋值
- 简单介绍如何使用robotium进行自动化测试
- 程序员如何在"大公司学习"和"小公司成长"?
- Spring MVC 3学习笔记+教程(一)开发环境搭建和HelloWorld程序
- 三、最短路径之Dijkstra算法
- Spring MVC 3学习笔记+教程(二)在controller和视图之间传递参数
- 利用diskpart设置移动硬盘写保护(转)
- metasploit_命令学习1
- Spring MVC 3学习笔记+教程(三)返回JSON数据