Boa tarde.
Ao criar o pacote, esta retornando este erro:
Package BODY_CLIENTE_PAC compilado
LINE/COL ERROR
11/5 PLS-00103: Encontrado o símbolo "V_CATEGORIA" quando um dos seguintes símbolos era esperado: idioma 40/1 PLS-00103: Encontrado o símbolo "PROCEDURE" quando um dos seguintes símbolos era esperado: end not pragma final instantiable persistente ordem overriding estático membro constructor mapa O símbolo "estático" foi substituído por "PROCEDURE" para continuar. 62/1 PLS-00103: Encontrado o símbolo "PROCEDURE" quando um dos seguintes símbolos era esperado: end not pragma final instantiable persistente ordem overriding estático membro constructor mapa O símbolo "estático" foi substituído por "PROCEDURE" para continuar. 83/1 PLS-00103: Encontrado o símbolo "PROCEDURE" quando um dos seguintes símbolos era esperado: end not pragma final instantiable persistente ordem overriding estático membro constructor mapa O símbolo "estático" foi substituído por "PROCEDURE" para continuar. Erros: verifique o log do compilador
Segue código abaixo do pacote:
create or replace NONEDITIONABLE PACKAGE CLIENTE_PAC
IS
--DECLARAÇÃO DA PROCEDURE CONTIDA NO PACOTE
PROCEDURE INCLUIR_CLIENTE
(p_id in cliente.id%type,
p_razao_social in cliente.razao_social%type,
p_CNPJ cliente.CNPJ%type ,
p_segmercado_id cliente.segmercado_id%type,
p_faturamento_previsto cliente.faturamento_previsto%type); --SEMPRE TERMINA COM ;
PROCEDURE ATUALIZAR_CLI_SEG_MERCADO
(p_id cliente.id%type,
p_segmercado_id cliente.segmercado_id%type);
PROCEDURE ATUALIZAR_FATURAMENTO_PREVISTO
(p_id in cliente.id%type,
p_faturamento_previsto in cliente.faturamento_previsto%type);
PROCEDURE EXCLUIR_CLIENTE
(p_id in cliente.id%type);
END;
create or replace PACKAGE BODY_CLIENTE_PAC
IS
--CÓDIGO DA PROCEDURE
PROCEDURE INCLUIR_CLIENTE
(p_id in cliente.id%type,
p_razao_social in cliente.razao_social%type,
p_CNPJ cliente.CNPJ%type ,
p_segmercado_id cliente.segmercado_id%type,
p_faturamento_previsto cliente.faturamento_previsto%type)
IS
v_categoria cliente.categoria%type;
v_CNPJ cliente.cnpj%type := p_CNPJ;
v_codigo_erro number(5);
v_mensagem_erro varchar2(200);
v_dummy number;
v_verifica_segmento boolean;
e_segmento exception;
BEGIN
v_verifica_segmento := verifica_segmento_mercado(p_segmercado_id);
IF v_verifica_segmento = false THEN
RAISE e_segmento;
END IF;
v_categoria := obter_categoria_cliente(p_faturamento_previsto);
format_cnpj (v_cnpj);
INSERT INTO cliente
VALUES (p_id, UPPER(p_razao_social), v_CNPJ, p_segmercado_id
,SYSDATE, p_faturamento_previsto, v_categoria);
COMMIT;
EXCEPTION
WHEN dup_val_on_index then
raise_application_error(-20010,'Cliente já cadastrado');
WHEN e_segmento then
raise_application_error (-20011,'Segmento de mercado inexistente');
WHEN OTHERS then
v_codigo_erro := sqlcode;
v_mensagem_erro := sqlerrm;
raise_application_error (-20000,to_char(v_codigo_erro)||v_mensagem_erro);
END;
PROCEDURE ATUALIZAR_CLI_SEG_MERCADO
(p_id cliente.id%type,
p_segmercado_id cliente.segmercado_id%type)
IS
e_fk exception;
pragma exception_init(e_fk, -2291);
e_no_update exception;
BEGIN
UPDATE cliente
SET segmercado_id = p_segmercado_id
WHERE id = p_id;
IF SQL%NOTFOUND then
RAISE e_no_update;
END IF;
COMMIT;
EXCEPTION
WHEN e_fk then
RAISE_APPLICATION_ERROR (-20001,'Segmento de Mercado Inexistente');
WHEN e_no_update then
RAISE_APPLICATION_ERROR (-20002,'Cliente Inexistente');
END;
PROCEDURE ATUALIZAR_FATURAMENTO_PREVISTO
(p_id in cliente.id%type,
p_faturamento_previsto in cliente.faturamento_previsto%type)
IS
v_categoria cliente.categoria%type;
e_error_id exception;
BEGIN
v_categoria := obter_categoria_cliente(p_faturamento_previsto);
UPDATE cliente
SET categoria = v_categoria,
faturamento_previsto = p_faturamento_previsto
WHERE id = p_id;
IF SQL%NOTFOUND THEN
RAISE e_error_id;
END IF;
COMMIT;
EXCEPTION
WHEN e_error_id then
raise_application_error(-20010,'Cliente inexistente');
END;
PROCEDURE EXCLUIR_CLIENTE
(p_id in cliente.id%type)
IS
e_error_id exception;
BEGIN
DELETE FROM cliente
WHERE id = p_id;
IF SQL%NOTFOUND THEN
RAISE e_error_id;
END IF;
COMMIT;
EXCEPTION
WHEN e_error_id then
raise_application_error(-20010,'Cliente inexistente');
END;
END;