尝试 Select 时缺少关键字
Missing Keyword when trying to Select into
所以我有一个函数可以 return 列的平均值,例如
CREATE OR REPLACE FUNCTION avgCol
RETURN DEC IS avgNum DEC;
BEGIN
SELECT AVG(myCol)
INTO avgNum
FROM MyTable;
RETURN avgNum;
END;
/
在尝试测试结果时,我有以下内容
SELECT avgCol
INTO RESULT
FROM DUAL;
但它给了我错误
ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action:
Error at Line: 175 Column: 6
第 175 行是 INTO RESULT
。据我所知,这是一个标量函数,我正在尝试 return 一个信号变量,所以它应该可以正常工作?我在这里缺少什么关键字?
我也知道我可以只使用 AVG(),但我正在学习如何创建标量函数。这完全是为了学习目的。
在测试您的代码(应该没问题)时,您需要
SELECT avgCol AS result FROM DUAL;
'INTO'将结果值赋给一个PL/SQL变量; 'AS' 为 SQL SELECT(不是 PL/SQL)结果 column/field 创建了一个 alias/name。
所以我有一个函数可以 return 列的平均值,例如
CREATE OR REPLACE FUNCTION avgCol
RETURN DEC IS avgNum DEC;
BEGIN
SELECT AVG(myCol)
INTO avgNum
FROM MyTable;
RETURN avgNum;
END;
/
在尝试测试结果时,我有以下内容
SELECT avgCol
INTO RESULT
FROM DUAL;
但它给了我错误
ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action:
Error at Line: 175 Column: 6
第 175 行是 INTO RESULT
。据我所知,这是一个标量函数,我正在尝试 return 一个信号变量,所以它应该可以正常工作?我在这里缺少什么关键字?
我也知道我可以只使用 AVG(),但我正在学习如何创建标量函数。这完全是为了学习目的。
在测试您的代码(应该没问题)时,您需要
SELECT avgCol AS result FROM DUAL;
'INTO'将结果值赋给一个PL/SQL变量; 'AS' 为 SQL SELECT(不是 PL/SQL)结果 column/field 创建了一个 alias/name。