简体   繁体   English

@ 附近的 SQL Anywhere 语法错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM