我正在使用商店程序在ASA 11工作。
例:
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
发送变量@cod并需要结果@name OUTPUT
无法保存但会显示消息:
无法在数据库中修改过程'xxx'。句法 第6行'@name'附近的错误[Sybase] [ODBC驱动程序] [SQL Anywhere]语法 第6行'@name'附近的错误SQLCODE:-131 SQLSTATE:42000
在Interactive SQL中,选择正常。
DECLARE @name varchar(15)
SELECT @name=name_employ FROM EMPLOY
WHERE COD_EMPLOY='333333'
请帮我找到语法错误? (我说西班牙语。)
答案 0 :(得分:1)
尝试将过程定义更改为:
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
答案 1 :(得分:0)
是的,程序如何正常,但在Powerbuilder中显示错误
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
答案 2 :(得分:0)
谢谢,解决了。尝试更改过程定义