尝试选择时缺少关键字

时间:2016-11-24 18:02:58

标签: sql oracle function keyword scalar

所以我有一个函数来返回列的平均值,例如

<div class="styled-input-container drop-down-input">
                       <input id="simple_2" class="drop-down-select" placeholder="input text" type="text">
                       <ul class="dropdown-list">
                           <li>eeee</li>
                           <li>xxxx</li>
                           <li>xxxx</li>
                           <li>xsssxxx</li>
                       </ul>
                   </div>

在尝试测试结果时,我有以下

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;

第175行是ORA-00905: missing keyword 00905. 00000 - "missing keyword" *Cause: *Action: Error at Line: 175 Column: 6 。据我所知,这是一个标量函数,我试图返回一个信号变量,所以它应该正常工作?我在这里错过了什么关键字? 另外我知道我可以使用AVG(),但我正在学习如何创建标量函数。这完全是出于学习目的。

2 个答案:

答案 0 :(得分:2)

在测试代码时(应该没问题),您需要

SELECT avgCol AS result FROM DUAL;

答案 1 :(得分:0)

&#39; INTO&#39;将结果值分配给PL / SQL变量; &#39; AS&#39;为SQL SELECT(不是PL / SQL)结果列/字段创建别名/名称。