值不适用于 SQL 任何地方的变量
Value does not apply to variable in SQL Anywhere
当我尝试执行此函数时出现错误。当我在没有函数且不使用变量的情况下执行命令时,它会起作用,因此我认为该值不适用于我的变量,变量的声明或设置不起作用。如果我使用 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
根据图像中看到的 table 结构,您的列 STATUS
似乎是 CHAR
类型。
尝试将您的函数 return 类型从 VARCHAR 更改为 CHAR,例如-
RETURNS CHAR
并将变量@ergebnis 的类型改为 CHAR,如-
DECLARE @ergebnis CHAR
您可以指定 length
和 CHAR,例如 CHAR(15),它应该是 greater than or equal to the length of your STATUS column
。
当我尝试执行此函数时出现错误。当我在没有函数且不使用变量的情况下执行命令时,它会起作用,因此我认为该值不适用于我的变量,变量的声明或设置不起作用。如果我使用 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
根据图像中看到的 table 结构,您的列 STATUS
似乎是 CHAR
类型。
尝试将您的函数 return 类型从 VARCHAR 更改为 CHAR,例如-
RETURNS CHAR
并将变量@ergebnis 的类型改为 CHAR,如-
DECLARE @ergebnis CHAR
您可以指定 length
和 CHAR,例如 CHAR(15),它应该是 greater than or equal to the length of your STATUS column
。