Function
Pessoal, tem exatamente 5 dias que eu comecei a usar pl/sql. Aqui no trampo estamos desenvolvendo um sistema em php e algumas funções serão executadas pelo oracle. Entao eu escrvi a seguinte função:
create or replace FUNCTION LUZ ( item IN NUMBER, descricao IN VARCHAR2, qtd IN NUMBER, hrsUso IN NUMBER, freq IN NUMBER, pot IN NUMBER, vlr IN NUMBER, codCC IN NUMBER) RETURN VARCHAR2 AS calculo NUMBER := null; vlrItem NUMBER := null; erro EXCEPTION;BEGIN if freq = 1 then vlrItem := 30; elsif freq = 2 then vlrItem := 4; elsif freq = 3 then vlrItem := 1; else RAISE erro; end if; calculo := (qtd hrsUso vlrItem * pot) / 1000; if calculo <> 0 then INSERT INTO EN_CC(EN_CC_CC_OM,ITEM,DESCRICAO,QTDE,HORAS_USO,FREQUENCIA,POTENCIA,VALOR,DATA_INCTMS_ULT_ALTERACAO) VALUES(codCC,item,descricao,qtd,hrsUso,freq,pot,vlr,SYSDATE,SYSTIMESTAMP); end if; EXCEPTION WHEN erro then return 'Valor inválido para frequência.'; return calculo;END LUZ;Quando eu passo os parametros pelo php, na linha do insert ele me retorna o seguinte erro do oracle: Erro: ORA-14551: cannot perform a DML operation inside a query ORA-06512: at "SIGA_DESENVOLVIMENTO.LUZ", line 23
Como eu posso evitar/corrigir este erro?
Grato,
Eduardo
Discussão (4)
Carregando comentários...