Estou tentando criar uma visão com função inline em db<>fiddle.
Eu removi a parte CREATE VIEW por enquanto e estou apenas tentando executar a consulta, apenas para chegar ao problema raiz.
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
);
/
Fonte: função embutida em uma subconsulta de seleção ou visualização de criação
Quando executo esse código em db<>fiddle , recebo um erro:
ORA-00905: missing keyword
O que estou fazendo errado?
O que deu errado
Correção
Minha resposta é a mesma. Defina-o na declaração mais externa
WITH
.Com base na resposta de @Michael Kutz:
O seguinte parece funcionar na versão Oracle 18c do db<>fiddle.
(Acho que 12c e além suporta funções inline):
db<>violino
Editar:
Infelizmente, todas as consultas que fazem referência a essa visualização precisam ter a
/*+ WITH_PLSQL */
dica de seleção nelas:Isso é um disjuntor para mim. O sistema que usaria a visualização é um sistema COTS. Não é possível adicionar a dica às consultas que fariam referência à exibição.