Executar funçao - procedure

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
pmv1980
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 97
Registrado em: Qua, 07 Jan 2009 12:39 pm
Localização: Recife

Para executar uma função ou procedure que está em um pacote é dessa forma ?

Selecionar tudo

Begin

Nome_Pacote.Nome_Procedure(Param1,Param2);

End;

Selecionar tudo

Declare
v varchar2(1000);

Begin

v := Nome_Pacote.Nome_Funcao(Param1,Param2);
end;
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Exato.
Sempre atentando caso hajam parametros de out.
Mas, é isso ai.
No exemplo da tua função, ela provavelmente retorna um varchar2.
Qualquer dúvida manda pra gente.
pmv1980
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 97
Registrado em: Qua, 07 Jan 2009 12:39 pm
Localização: Recife

E qual seria a diferença se fossem out ?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Selecionar tudo

DECLARE
  VPARAMOUT VARCHAR2(100);
BEGIN
  -- Supondo que o segundo parâmetro seja um out
  PACKAGE.PROCEDURE(PARAM1 => PPARAM1
                   ,PARAM2 => VPARAMOUT);

  --
  DBMS_OUTPUT.PUT_LINE('PARÂMETRO OUT: '||VPARAMOUT);
  --
END;
Para maiores dúvidas sobre PL/SQL, dê uma olhada nesta apostila que temos aqui no fórum, sobre PL/SQL que é bem completa:


http://glufke.net/oracle/viewtopic.php?t=1515&highlight=sql
pmv1980
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 97
Registrado em: Qua, 07 Jan 2009 12:39 pm
Localização: Recife

Bom dia, está dando o erro abaixo, o que está errado ?

Selecionar tudo

declare 
  p1 number;
  p2 number;
begin
  PACOTE.PROCEDURE(1,p1,p2);
  dbms_output.put_line(18||'-'||p1||'-'||p2);
end;    

[1]: (Error): ORA-06510: PL/SQL: unhandled user-defined exception ORA-06512: at "SYS.UTL_FILE", line 145 ORA-06512: 
at "PACOTE", line 828 ORA-06512: at line 10
pmv1980
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 97
Registrado em: Qua, 07 Jan 2009 12:39 pm
Localização: Recife

Boa noite, alguém sabe o q pode ser esse erro ?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Sim, o problema aí é erro dentro da sua procedure. Não na chamada dela. Veja se não está faltando um exception.
http://www.techonthenet.com/oracle/errors/ora06510.php
Responder
  • Informação
  • Quem está online

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