MySQL创建存储过程报错

,过程如下:
CREATE PROCEDURE NewProc (
IN IN_ID VARCHAR,
OUT OUT_NAME VARCHAR
)
BEGIN
SELECT
C_NAME INTO OUT_NAME ROM T_ITCAST_ORGAN_USER
WHERE
c_id = IN_ID;
END;
报错如下:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' OUT OUT_NAME varchar)
BEGIN
SELECT C_NAME INTO OUT_NAME
ROM T_ITC' at line 1
请问这是什么原因啊??

目测两个VARCHAR未指定大小,ROM写少了“F”

建议修改如下试一试:
CREATE PROCEDURE NewProc (
IN IN_ID VARCHAR(250),
OUT OUT_NAME VARCHAR(250)
)
BEGIN
SELECT
C_NAME INTO OUT_NAME FROM T_ITCAST_ORGAN_USER
WHERE
c_id = IN_ID;
END;
温馨提示:内容为网友见解,仅供参考
无其他回答

解决方法MySQL无法创建存储过程的问题mysql不能建存储过程
解决MySQL无法创建存储过程的问题,需要在MySQL配置文件中添加配置项,具体步骤如下:Step 1. 通过以下命令查看MySQL是否已打开binary log功能:SHOW VARIABLES LIKE ‘log_bin%’;如果结果中没有“log_bin”,则说明未开启binary log功能,无需进行以下配置。Step 2. 修改 MySQL 配置文件 my...

mysql创建存储过程出错,怎么解决?
1、打开mysql的客户端管理软件,找到想要创建存储过程的数据库,在【Stored Procedures】菜单上点击鼠标右键,选择【Create Stored Procedure】菜单项。2、点击之后,右侧会出现一个存储过程编辑界面,并且会有默认的创建存储过程的基本结构。3、在CREATE PROCEDURE后面的是存储过程的名字,可以改成喜欢的任何名...

...with compilation errors 创建存储过程的时候出现的错误_百度...
1、打开mysql的客户端管理软件,找到想要创建存储过程的数据库,在【Stored Procedures】菜单上点击鼠标右键,选择【Create Stored Procedure】菜单项。2、点击之后,右侧会出现一个存储过程编辑界面,并且会有默认的创建存储过程的基本结构。3、在CREATE PROCEDURE后面的是存储过程的名字,可以改成喜欢的任何名...

MySQL存储过程无法使用可能的原因和解决方案mysql不能用存储过程
在创建存储过程之前,请检查是否存在具有相同名称的存储过程。4.检查参数 检查提供给存储过程的参数是否正确。5.使用MySQL的错误日志文件 MySQL的错误日志文件记录了MySQL服务器的所有错误消息。如果存储过程无法运行,可以检查错误日志文件以查找有关错误的详细信息。在MySQL配置文件中指定错误日志文件的位置:[...

mysql 存储过程提示错误!!求高人解答
begin select stu_no from student; -- 加个分号 end;-- 如果加了分号还不行的话,提示的错误应该是 错误:PLS-00428: 在此 SELECT 语句中缺少 INTO 子句 原因是单独的一个select语句在存储过程中是不应该存在的,所以应该改成select stu_no into 的模式 create procedure student()is v_stu_no...

MySQL 数据库常见报错处理
创建存储过程时,如遇到ERROR 1418,需在主从服务器上设置log_bin_trust_function_creators=1,以避免潜在的数据安全问题,除非确保函数在主从服务器上的行为一致。遇到purge gtid报错,须在设置GTID_PURGED前先清空GTID_EXECUTED,以避免混淆。Aborted connection报错可能由权限问题、密码错误、连接信息不正确或...

MySQL储存过程报1064错误
()BEGINDECLARE tableName VARCHAR(20);DECLARE sqlStatement VARCHAR(400);END$$DELIMITER ;DELIMITER修改mysql结束符。默认以;为结束符,也就是检测到;就会执行,但存储过程显然是一个整段,必须一起执行,单独执行肯定报错。所以只有在执行存储过程时先修改掉默认的结束符,等执行完后再改回去。

MYSQL 存储过程报错Deadlock found when trying to get lock; try re...
如果你是mysql数据库, 则尽量避免使用 insert ... select 这样的sql(oracle不用), 因为他会为你需要查询的条件也上锁, 这样也会容易出现死锁的问题 捕获异常, 然后在出现这个异常的时候再次执行一次死锁的sql语句 待续, 我也没遇到更多的出现死锁的情况了, 等遇到再说 以上几点如果有错的话, 请指出...

用Navicat连接MySQL创建存储过程时提示1304错误是为什么?r并不存在...
既然错误提示已经显示存储过程"r"已经存在,说明该存储确实是存在的。题主可以运行下列SQL语句,检视现存所有的存储过程列表:show procedure status;或者 select `name` from mysql.proc where db = 'database_name' and `type` = 'PROCEDURE';应该可以看到存储过程"r",除非您不是数据库管理员或权限...

为什么MYSQL的储存语句出现这样的错误
你看看你的会不会是latin1, 如果是的话两种方案 改数据库字符集, 通用些utf8或者支持emjio的utf8mb4, 重启mysql服务再重连试验 建立的每个存储过程手动指定字符集 如:create procedure delete_employees(in xm char(6) CHARSET utf8 COLLATE utf8_bin) ...这样再试试 ...

相似回答