值不适用于SQL Anywhere中的变量

时间:2017-06-19 11:51:43

标签: sql sqlanywhere

当我尝试执行此功能时,我收到错误。当我执行没有函数的命令而没有使用变量时,它工作,因此我认为该值不适用于我的变量,声明或变量的设置不起作用。如果我使用SELECT或SET来设置变量并不重要,我会得到相同的错误,字面上只是说:命令无法执行。

CREATE FUNCTION ueberpruefe_kfz_status (@kennzeichen CHAR(15))
RETURNS VARCHAR
AS
BEGIN
    DECLARE @ergebnis VARCHAR

    SELECT STATUS
    INTO @ergebnis
    FROM KFZ
    WHERE KENNZEICHEN = @kennzeichen

    RETURN @ergebnis
END

以下是结构,示例数据和错误的一些屏幕截图: https://picload.org/folder/ldpwa.html

1 个答案:

答案 0 :(得分:1)

根据图片中显示的表格结构,您的列STATUS似乎属于CHAR类型。 尝试将函数返回类型从VARCHAR更改为CHAR,如 -

RETURNS CHAR

变量@ergebnis的类型为CHAR -

DECLARE @ergebnis CHAR

您可以指定length和CHAR,例如CHAR(15),它应该是greater than or equal to the length of your STATUS column