[英]SQL Anywhere Syntax error near @
I am working in ASA 11 with store procedures.我在 ASA 11 中使用存储程序。 Example:例子:
CREATE PROCEDURE "DBA"."pa_select_employ"(
@cod nVARCHAR(10),
@name nvarchar(15) OUTPUT)
BEGIN
SELECT @name=name_employ FROM EMPLOY //the line 6
WHERE COD_EMPLOY=@cod
END
Send the variable @cod and need result @name OUTPUT发送变量@cod 并需要结果@name OUTPUT
Can't Save but shows message:无法保存但显示消息:
The procedure 'xxx' could not be modified in the database.无法在数据库中修改过程“xxx”。 Syntax error near '@name' on line 6 [Sybase][ODBC Driver][SQL Anywhere]Syntax error near '@name' on line 6 SQLCODE: -131 SQLSTATE: 42000第 6 行“@name”附近的语法错误 [Sybase][ODBC 驱动程序][SQL Anywhere]第 6 行“@name”附近的语法错误 SQLCODE:-131 SQLSTATE:42000
In the Interactive SQL the select is OK.在 Interactive SQL 中,选择正常。
DECLARE @name varchar(15)
SELECT @name=name_employ FROM EMPLOY
WHERE COD_EMPLOY='333333'
please help me find the syntax error?请帮我找出语法错误? (I speak Spanish.) (我说西班牙语。)
Try changing the procedure definition to:尝试将过程定义更改为:
CREATE PROCEDURE "DBA"."pa_select_employ"(
IN @cod nVARCHAR(10),
OUT @name nvarchar(15))
BEGIN
SELECT @name=name_employ FROM EMPLOY //the line 6
WHERE COD_EMPLOY=@cod
END
是的,如何 thw prodedure es 好,但在 Powerbuilder 中显示 te 错误ERRORSQLSTATE = S1105
[Sybase][ODBC Driver]Invalid parameter type
DECLARE pa_find_name PROCEDURE FOR pa_select_employ
cod =:sle_cod.text, //input
name =: sle_name.text ; //out
EXECUTE pa_find_name;
IF SQLCA.sqlcode<>0 THEN
MESSAGEBOX("","ERROR" + SQLCA.sqlerrtext )
END IF
thanks, it was solved.谢谢,已解决。 Try changing the procedure definition尝试更改过程定义
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.