帮我看看该怎么写这个Mysql存储过程啊

kerisyml 2008-03-11 03:53:20
delimiter //
CREATE PROCEDURE proc_s_txm
(
IN p_txm VARCHAR(16), -- 条形码
OUT x_txmlb VARCHAR(1), -- 条码类别(1-整机条码; 2-PKG条码; 3-部件条码; 4-模块条码)
OUT x_zjmc VARCHAR(8), -- 整机名称(1)
OUT nRc INT, -- 返回码(0-成功)
OUT sMsg VARCHAR(60) -- 返回信息

)
BEGIN
declare v_zjmc varchar(8);
declare num int;

if length(p_txm)=16 then
set v_zjmc=substr(p_txm,1,8);
select count(*) into num from c_cpmc where scpmc=v_zjmc;
if num=1 then
set x_txmlb='1';
set x_zjmc=v_zjmc;
set nRc=0;
set sMsg="成功";
else
set nRc=1;
set sMsg="错误";
return;
end if;
end if;

END;
//


第一次用MYSQL写存储过程,上面这个一大堆问你,怎么都通不过
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒得去死 2008-03-12
  • 打赏
  • 举报
回复

delimiter //
CREATE PROCEDURE proc_s_txm
(
IN p_txm VARCHAR(16), -- 条形码
OUT x_txmlb VARCHAR(1), -- 条码类别(1-整机条码; 2-PKG条码; 3-部件条码; 4-模块条码)
OUT x_zjmc VARCHAR(8), -- 整机名称(1)
OUT nRc INT, -- 返回码(0-成功)
OUT sMsg VARCHAR(60) -- 返回信息

)
BEGIN
declare v_zjmc varchar(8);
declare num int;

if length(p_txm)=16 then
set v_zjmc=substr(p_txm,1,8);
select count(*) into num from c_cpmc where scpmc=v_zjmc;
if num=1 then
set x_txmlb='1';
set x_zjmc=v_zjmc;
set nRc=0;
set sMsg="成功";
else
set nRc=1;
set sMsg="错误";
-- return;
end if;
end if;

END;
//



(0 row(s)affected)
(0 ms taken)
kerisyml 2008-03-12
  • 打赏
  • 举报
回复
错误如下:
错误代码: 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 'declare num int;

if length(p_txm)=16 then
set v_zjmc=' at line 1
(耗费 16 ms)
懒得去死 2008-03-11
  • 打赏
  • 举报
回复
去掉
return;

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧