尝试 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。