SQLFiddle 中的 Oracle 用户定义函数

Oracle User Defined Functions in SQLFiddle

我正在尝试使用 Oracle 的用户定义函数和虚拟列,但我唯一的测试环境是 SQL Fiddle,我很难理解我做错了什么错误消息非常难以描述。

ORA-06575: Package or function COUNTER is in an invalid state

我尝试了不同站点的各种调整和复制粘贴尝试,但无法让函数和 sqlfiddle 很好地协同工作...

create table test (
    x number
)
//

create
  function counter()
    return number is v_result NUMBER;
    begin
        SELECT COUNT(*) INTO v_result FROM test;
        return v_result;
    end;
//

select test.*, counter() from test
//

http://sqlfiddle.com/#!4/0c001

有人能做到这一点,还是我走入了死胡同?

不带参数的函数在名称后没有任何(空)括号

http://sqlfiddle.com/#!4/0c001/5

您可以查询 sys.user_errors table 以获得编译错误列表。 "Invalid state" 表示代码未编译