MySql中存储过程中的@变量总是无法执行,提示Parameter '@XXX' must be defined
一、情形:
在.net调用Mysql时,比如如下的一句SQL,总是无法执行,可是在其它SQL客户端窗口中是能正确执行的。
drop procedure if exists AddColumnUnlessExists;
create procedure AddColumnUnlessExists(IN tableName tinytext,IN fieldName tinytext,IN fieldDef text)
begin
IF NOT EXISTS(
SELECT * FROM information_schema.COLUMNS
WHERE column_name = fieldName
and table_name = tableName
and table_schema = 'MyTestDB'
)
THEN
set @ddl = CONCAT('ALTER TABLE ', 'MyTestDB', '.', tableName,' ADD COLUMN ', fieldName, ' ', fieldDef);
prepare stmt from @ddl; execute stmt;
END IF; end; "
二、解决方案:
连接语句中添加:allowuservariables=True;即可。
MySql中存储过程中的@变量总是无法执行,提示Parameter '@XXX' must be defined的更多相关文章
- mysql 执行 sql 语句提示Parameter '@XXX' must be defined
执行 sql 语句 MySqlException: Parameter '@maxNo' must be defined. 执行 sql 中含有自定义变量 @maxNo,抛出异常 解决方法: 连接字符 ...
- SQL中存储过程中使用事务,并且加入异常处理机制.
--存储过程中使用事务,并且加入异常处理机制. -- ============================================= CREATE PROCEDURE [dbo].[UP_ ...
- oracle中存储过程中调用存储过程
存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...
- Mysql向存储过程中传递中文参数变成乱码的解决方案
今天做程序需要用到一个存储过程,然后用php程序调用. 存储过程如下: delimiter $$ CREATE PROCEDURE disagree_upgrade_detail(a int,b t ...
- mysql创建存储过程中的问题
1.在创建存储过程成功后,使用call 存储过程名执行时报错: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_gener ...
- MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist
MySQL很强大,支持直接拷贝数据库文件快速备份,那数据库文件在哪里呢? 打开MySQL的配置文件 my.ini,找到 datadir 节点,如 datadir="D:/Program Fi ...
- MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法
在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...
- MySQL存储过程中使用SELECT …INTO语句为变量赋值
使用SELECT …INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT …INTO语句 ...
- mysql -- 存储过程中 declare 和 set 定义变量的区别
mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...
随机推荐
- 实验5 Spark SQL编程初级实践
今天做实验[Spark SQL 编程初级实践],虽然网上有答案,但都是用scala语言写的,于是我用java语言重写实现一下. 1 .Spark SQL 基本操作将下列 JSON 格式数据复制到 Li ...
- C#嵌套类
{ "children" : [{ "children" : [{ "children" : [], "name" : ...
- 【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识
第33章 SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作. (本 ...
- [Swift]LeetCode50. Pow(x, n) | Pow(x, n)
Implement pow(x, n), which calculates x raised to the power n (xn). Example 1: Input: 2.00000, 10 Ou ...
- [Swift]LeetCode464. 我能赢吗 | Can I Win
In the "100 game," two players take turns adding, to a running total, any integer from 1.. ...
- [Swift]LeetCode479. 最大回文数乘积 | Largest Palindrome Product
Find the largest palindrome made from the product of two n-digit numbers. Since the result could be ...
- [Swift]LeetCode540. 有序数组中的单一元素 | Single Element in a Sorted Array
Given a sorted array consisting of only integers where every element appears twice except for one el ...
- [Swift]LeetCode842. 将数组拆分成斐波那契序列 | Split Array into Fibonacci Sequence
Given a string S of digits, such as S = "123456579", we can split it into a Fibonacci-like ...
- cassandra vs mongo (1)存储引擎
摘要 在MongoDB 初识篇中谈到过Mongo 与 Cassandra的区别,这边再谈谈Mongo与Cassandra的存储引擎差别 概括 存储引擎: 类型 功能 应用 hash 增删改.随机读.顺 ...
- Linux篇---Vi的使用
一.前述 Vi类似记事本,所以用好记事本对编程效率有很大得影响,有着事半功倍的效率. 二.具体操作 1.打开文件vim /path/to/somefilevim +# :打开文件,并定位于第#行 v ...