Sql 尝试选择进入时缺少关键字
所以我有一个函数来返回一列的平均值,比如Sql 尝试选择进入时缺少关键字,sql,oracle,function,keyword,scalar,Sql,Oracle,Function,Keyword,Scalar,所以我有一个函数来返回一列的平均值,比如 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 keywo
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行是到结果中的。据我所知,这是一个标量函数,我试图返回一个信号变量,所以它应该正常工作?我遗漏了什么关键词?
我也知道我可以使用AVG(),但我正在学习如何创建标量函数。这完全是为了学习。在测试代码(应该可以)时,您需要
SELECT avgCol AS result FROM DUAL;
“INTO”将结果值分配给PL/SQL变量;'AS'为SQL选择(不是PL/SQL)结果列/字段创建别名/名称 什么是avgCol
?它似乎没有在任何地方定义。函数定义中的aveNum
是什么?这就是您要求函数返回的内容。@GordonLinoff,它是一个标量函数,用于返回一个表中数字的平均值column@mathguy对不起,那是个打字错误。我修改了代码,把它贴在这里。这是命中注定的avgNum@a_horse_with_no_name,根据文档,它是一个子类型,谢谢!我查了一下,我查到的每一个地方都写着“进入”。你知道为什么我应该用As而不是Into吗?