暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

具有内联PL/SQL函数的Oracle 12c-SQL查询

askTom 2017-12-13
328

问题描述

我正在使用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> 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论