Erro ao exec uma procedure

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
mveloso
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qui, 30 Set 2010 10:15 am
Localização: são Paulo

Olha eu de novo ... eheheh

Tenho a seguinte table ...

Selecionar tudo

CREATE table TB_OPERADOR_TRANSF_TST
( id_operador VARCHAR2(15),
  cpf_cliente NUMBER(11),
  data_ultima_transferencia TIMESTAMP)
;
E a seguinte proc que compilou sem problemas ....

Selecionar tudo

CREATE OR REPLACE procedure UPDATE_CPF_CLIENTE
 (parm_cpf_cliente IN TB_OPERADOR_TRANSF_TST.cpf_cliente%type,
  parm_id_operador IN TB_OPERADOR_TRANSF_TST.id_operador%type)

AS
BEGIN
  
INSERT INTO TB_OPERADOR_TRANSF_TST (id_operador, cpf_cliente, data_ultima_transferencia) VALUES (parm_id_operador, parm_cpf_cliente, SYSDATE);
   
END UPDATE_CPF_CLIENTE;
/
Quando tento testar a proc com o seguinte comando

Selecionar tudo

EXEC UPDATE_CPF_CLIENT(MARCIO,'12345678111');
Da erro e fala que a instruçao SQL esta invalida!!! :?
ORA-00900: instrução SQL inválida
alguém tem noção do que pode estar errado?

Obrigado,
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

Olha a ordem dos parâmetros na procedure e olha como você a chamou no EXEC...

MARCIO é uma variavel? Se for somente um valor, então você deve colocá-lo dentro de aspas também! Depois de acertado isso manda resposta...
mveloso
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qui, 30 Set 2010 10:15 am
Localização: são Paulo

Opa, valeu aí a dica ...

Alinhei os parametros da tabela e da procedure, coloquei entre aspas, sem aspas ... de todo jeito possivel ... para executar a procedure ... mas o erro persiste!
mveloso
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qui, 30 Set 2010 10:15 am
Localização: são Paulo

Galerinha ... consegui resolver o problema e executar a procedure ...

Como?

Coloquei todos na mesma ordem .... os campos da tabela, os parametros de entrada da proc e os campos do insert

Ex:

Selecionar tudo

CREATE table TB_OPERADOR_TRANSF_TST
( id_operador VARCHAR2(15),
  cpf_cliente NUMBER(11),
  data_ultima_transferencia TIMESTAMP)
;
=================================

CREATE OR REPLACE procedure PROC3_INSERT_DATA_CLIENT
 (parm_id_operador IN TB_OPERADOR_TRANSF_TST.id_operador%type,
  parm_cpf_cliente IN TB_OPERADOR_TRANSF_TST.cpf_cliente%type)

AS

BEGIN
  
INSERT INTO TB_OPERADOR_TRANSF_TST (id_operador, cpf_cliente, data_ultima_transferencia) VALUES (parm_id_operador, parm_cpf_cliente, SYSDATE, to_date('YYYYMMDD','HHMMSS'));
   
END PROC3_INSERT_DATA_CLIENT;
/

=============================

exec PROC3_INSERT_DATA_CLIENT('mveloso',22222);

TKS ==== burga ==== pela dica! =)
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes