大家好,我现在项目中要动态创建一个mysql数据库,然后在创建这个mysql数据库的存储过程的时候出了点问题。
就是当存储过程中有动态参数时(应该叫做这个名称),就会报错。我是通过 ExecuteNonQuery执行创建存储过程的脚本的,下面是一个我写的一个需要用动态参数的存储过程(只为了测试)
DROP PROCEDURE IF EXISTS proc3;
CREATE PROCEDURE proc3 (IN t_name VARCHAR(40))
BEGIN
DECLARE v_sql VARCHAR(500);
SET v_sql= CONCAT('select * from ',t_name);
SELECT v_sql;SET @v_sql=v_sql;
END==================================
其中@v_sql 就是动态参数,但是在用ExecuteNonQuery执行的时候,C#应该把他当做是一个程序输入参数了,所以提示
Fatal error encountered during command execution.错误,具体的错误是,Parameter '@v_sql' must be defined.现在不知道怎么搞了,大家有没有遇到我这样的情况,应该怎么创建才对?还是需要设置些什么?
就是当存储过程中有动态参数时(应该叫做这个名称),就会报错。我是通过 ExecuteNonQuery执行创建存储过程的脚本的,下面是一个我写的一个需要用动态参数的存储过程(只为了测试)
DROP PROCEDURE IF EXISTS proc3;
CREATE PROCEDURE proc3 (IN t_name VARCHAR(40))
BEGIN
DECLARE v_sql VARCHAR(500);
SET v_sql= CONCAT('select * from ',t_name);
SELECT v_sql;SET @v_sql=v_sql;
END==================================
其中@v_sql 就是动态参数,但是在用ExecuteNonQuery执行的时候,C#应该把他当做是一个程序输入参数了,所以提示
Fatal error encountered during command execution.错误,具体的错误是,Parameter '@v_sql' must be defined.现在不知道怎么搞了,大家有没有遇到我这样的情况,应该怎么创建才对?还是需要设置些什么?
解决方案 »
- MS SQL Server 2005,数据表能否打包
- 请问不使用触发器能否实现下面的动作?
- 触发器不触发的原因如何分析?
- 将记录集填入带标识列的表变量和用游标处理的异同
- 关于report service 导出Excel默认是2003的格式,如何设置导出为Excel 2007
- mysql数据库中链接数据库?
- 关于SQL查询最有执行效率的语句
- 如何实现异构数据库的整合,解决企业信息孤岛问题,各位高人给点思路吧? 给指个方向!
- 空格显示问题
- 简单而又头疼的问题。。望高手解答!!(高分!)---在线等待
- 如何用SQL server2000存储过程的方法根据本地IP 限制新闻列表的输出,如果本地ip不在某条新闻的IP允许范围内 那么新闻列表就不输出
- 高手们帮帮忙 [Microsoft][ODBC SQL Server Driver][SQL Server]无法打开登录 'sq_dgzy' 中请求的数据库。
你定义在 SQL SERVER 中定义变量,前边必须加@;
所以说你的SQL写的有问题;CREATE PROCEDURE proc3 (IN t_name VARCHAR(40))
BEGIN
DECLARE @v_sql VARCHAR(500);
set @v_sql = ''
SET @v_sql = 'select * from '+ t_name ;
select @v_sql
END
上面的同学,
你定义在 SQL SERVER 中定义变量,前边必须加@;
所以说你的SQL写的有问题;
DECLARE @v_sql VARCHAR(500);至于@开头的是什么东西,我现在也搞不动,晕啊,以前都没用过mysql。