2
respostas

Eu repeti o exercicio conforme o do instrutor, mas da erro de compilacao. Erro(35,43): PLS-00201: o identificador 'SLQERRM' deve ser declarado

create or replace PROCEDURE INCLUIR_CLIENTE ( p_id IN cliente.id%type,p_razao_social IN cliente.razao_social%type,p_cnpj IN cliente.cnpj%type,p_segmercado_id IN cliente.segmercado_id%type,p_faturamento_previsto IN cliente.faturamento_previsto%type ) IS v_categoria cliente.categoria%type; v_CNPJ cliente.cnpj%type :=p_cnpj;-- variavel com o valor do CNPJ e_null exception; pragma exception_init(e_null, -1400);

BEGIN v_categoria := categoria_cliente (p_faturamento_previsto);-- p_faturamento_previsto e o parametro de consulta da variavel -- categoria_cliente é a função criada

FORMATA_CNPJ (v_CNPJ);-- procedure para formatar o CNPJ INSERT into cliente VALUES ( p_id, UPPER(p_razao_social), v_CNPJ, p_segmercado_id, SYSDATE,p_faturamento_previsto, v_categoria );

COMMIT;

EXCEPTION -- Tratativa de erros WHEN DUP_VAL_ON_INDEX THEN raise_application_error (-20010, 'Cliente já cadastrado');

WHEN e_null THEN raise_application_error (-20015, 'A coluna ID deve ter preenchimento Obrigatório');

WHEN OTHERS THEN raise_application_error (-20020, slqerrm() ); END;

2 respostas

Evandro,

O Oracle está reclamando do 'slqerrm' você digitou errado. Altere pela função correta SQLERRM()

Só esclarecendo: o problema não está no case sensitive e sim na escrita errada de "slq" que deveria ser "sql", logo a função correta é: sqlerrm();