我正在尝试在 db<>fiddle 中使用 inline 函数创建视图。
我现在已经删除了 CREATE VIEW 部分,我只是想运行查询,只是为了解决根本问题。
select /*+ WITH_PLSQL */ calc from
(
with
function calculator (m number, r number) return number
is begin
return m * r;
end calculator;
select calculator(3, 2) as calc from dual
);
/
当我在db<>fiddle中运行该代码时,出现错误:
ORA-00905: missing keyword
我究竟做错了什么?
什么地方出了错
更正
我的回答是一样的。在最外面的
WITH
语句中定义它。以@Michael Kutz 的回答为基础:
以下似乎适用于 db<>fiddle 的Oracle 18c版本。
(我认为 12c 及更高版本支持内联函数):
db<>小提琴
编辑:
不幸的是,任何引用该视图的查询都需要
/*+ WITH_PLSQL */
在其中包含选择提示:这对我来说是一个交易破坏者。将使用视图的系统是 COTS 系统。我无法将提示添加到将引用视图的查询中。