问题描述
我正在使用Oracle 12c并尝试新功能。新功能之一是,SQL查询中的was子句现在允许使用PL/SQL函数。
我创建了以下示例查询:
当我运行查询时,我得到一个错误:
我创建了以下示例查询:
WITH
FUNCTION get_number RETURN NUMBER IS
BEGIN
RETURN 12345;
END;
SELECT employee_id, first_name, last_name, get_number()
FROM hr.employees
当我运行查询时,我得到一个错误:
ORA-00905: missing keyword Invalid statement ORA-00904: "GET_NUMBER": invalid identifier
专家解答
您确定使用的是正确版本的SQL Plus (或您正在使用的特定工具) 吗?
我在我的12.1和12.2上都有这个
而在SQL加11我会得到:
我在我的12.1和12.2上都有这个
SQL> WITH
2 FUNCTION get_number RETURN NUMBER IS
3 BEGIN
4 RETURN 12345;
5 END;
6 SELECT employee_id, first_name, last_name, get_number()
7 FROM hr.employees;
8 /
EMPLOYEE_ID FIRST_NAME LAST_NAME GET_NUMBER()
----------- -------------------- ------------------------- ------------
100 Steven King 12345
101 Neena Kochhar 12345
102 Lex De Haan 12345
103 Alexander Hunold 12345
104 Bruce Ernst 12345
105 David Austin 12345
106 Valli Pataballa 12345
...
而在SQL加11我会得到:
SQL> WITH
2 FUNCTION get_number RETURN NUMBER IS
3 BEGIN
4 RETURN 12345;
FUNCTION get_number RETURN NUMBER IS
*
ERROR at line 2:
ORA-00905: missing keyword
SQL> END;
SP2-0042: unknown command "END" - rest of line ignored.
SQL> SELECT employee_id, first_name, last_name, get_number()
2 FROM hr.employees;
SELECT employee_id, first_name, last_name, get_number()
*
ERROR at line 1:
ORA-00904: "GET_NUMBER": invalid identifier
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




