这是我的程序:
CREATE DEFINER=`root`@`localhost` PROCEDURE `RPTtempreceipts`(
IN vRCPTNO VARCHAR(20))
BEGIN
DECLARE vBNo VARCHAR(20);
DECLARE vPtyCde INTEGER DEFAULT 0;
DECLARE vWMC VARCHAR(20);
DECLARE vPrdCde VARCHAR(10);
DECLARE vBcde CHAR(5);
DECLARE vSAPLID INTEGER DEFAULT 0;
-- Assign Values
SELECT T.BNo,T.pty_code,T.WMC,T.PrdCde,T.Bcde INTO
vBNo,vPtyCde,vWMC,vPrdCde,vBcde FROM
tbltransaction T INNER JOIN tbltransreceipts TR
ON T.BNo=TR.BNo WHERE TR.RcptNO=vRCPTNO;
SELECT SAPLID INTO vSAPLID FROM tblcust_prd_wor WHERE pty_code=vPtyCde;
-- Select Queries are configured as for Typed Dataset under DT's
SELECT * FROM tbltrans WHERE BNo=vBNo;
SELECT * FROM tbltransrcpt WHERE RNo=vRCPTNO;
END
显示以下错误:
错误代码:1064您的SQL语法出错;检查 手册,对应右边的MySQL服务器版本 在第1行(采用328毫秒)的“DECLARE vPtyCde INTEGER”附近使用的语法
错误代码:1064您的SQL语法出错;检查 手册,对应右边的MySQL服务器版本 第1行'DECLARE vWMC VARCHAR(20)'附近使用的语法(312 ms)
错误代码:1064您的SQL语法出错;检查 手册,对应右边的MySQL服务器版本 在第1行的'DECLARE vPrdCde VARCHAR(10)'附近使用的语法(328 ms 取)
错误代码:1064您的SQL语法出错;检查 手册,对应右边的MySQL服务器版本 在第1行(313 ms)的“DECLARE vBcde CHAR(5)”附近使用的语法
错误代码:1064您的SQL语法出错;检查 手册,对应右边的MySQL服务器版本 在第1行的'DECLARE vSAPLID INTEGER DEFAULT 0'附近使用的语法(297 ms)
错误代码:1327未声明的变量:vBNo(采用312毫秒)
错误代码:1327未声明的变量:vSAPLID(需要297毫秒)
我对此感到困惑,因为它在localhost中正常工作。 现在我完成了项目并喜欢将数据库上传到服务器。 但这些错误阻止我继续前进......请帮助我。
此致 森萨。
答案 0 :(得分:0)
phpMyAdmin会在每个;
之后将您的输入拆分为单独的查询。
这篇文章解释了如何避免这种情况:http://blog.nth-design.com/2009/02/25/creating-sp-in-phpmyadmin/
答案 1 :(得分:0)
正如DCoder所说,你正在使用的分隔符“;”造成了这个问题。您需要将分隔符更改为查询中未出现的任何分隔符。博客文章中“$$”的例子很可能是安全的,因为在许多地方不太可能出现双美元符号。
您需要确保您的数据库是5.0或更高版本的MySQL数据库,因为程序仅在5.0中开始。
此外,定义root @ localhost不适用于Go Daddy共享主机。您应该能够摆脱该部分或使用dbuser @'%'。