3
respostas

Erro ORA-00900 - Executar Procedure

Utilizo o oracle 11g Release 2, consegui criar a procedure sem erro, porém quando executo o comando

EXECUTE INCLUIR_SEGMERCADO(5,'FARMACEUTICO')

o oracle retorna o erro ORA-00900, já realizei algumas pesquisas, mas as respostas que encontro é que tenho que revisar o comando, pois deve está com alguma escrita errada, alguém poderia me ajudar.

Obs.: A execução em bloco (BEGIN - END), funciona.

A criação da procedure está igual ao exemplo da aula:

-- Criação Procedure
CREATE PROCEDURE INCLUIR_SEGMERCADO**
(
       P_ID IN NUMBER,
       P_DESCRICAO IN VARCHAR2
)
IS
BEGIN
       INSERT INTO SEGMERCADO
              VALUES (P_ID, UPPER(P_DESCRICAO));
       COMMIT;  
END; 
3 respostas

Diogo, uma procedure somente apresenta erros ao compilar e não ao criar, por isso você conseguiu criá-la. Não sei se isso resolverá mas tente colocar em caixa baixa as seguintes partes do comando:


incluir_segmercado
segmercado
p_id
p_descricao

Espero que tenha resolvido seu problema. Se precisar, estou à disposição!

Dependendo da ferramenta que você utiliza talvez seja necessário adaptar sua chamada. Por exemplo, no TOAD é comum usarem o EXECUTE na janela SQL. Já no PL/SQL Developer usamos o CALL na janela SQL. Se o código funciona dentro de um bloco anônimo (BEGIN END;), como citado, então não erro no código, apenas na chamada.

Tente fazer: CALL INCLUIR_SEGMERCADO(5,'FARMACEUTICO');

Abraço, Marco.

Obs: A resposta do David, não faz muito sentido. No Oracle é indiferente usar CAIXA-ALTA ou caixa-baixa (UPPERCASE ou lowercase). A menos que a versão do Oracle seja muito antiga ou que se use "aspas" nos nomes dos objetos (raro, improvável).