Como Recuperar os parametros de uma procedure

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Sex, 18 Jul 2008 11:04 am

Pessoal,
estou começando minha caminha no mundo do oracle
e gostaria de uma ajuda.

Como eu conseguiria recuperar os parametros de uma procedure...para recuperar as colunas de uma tabela usa-se a tabela USER_TAB_COLUMNS e de uma procedure

Valeu

abraçosss
alecoelho
Localização: Rio de Janeiro / RJ

Mensagemem Sex, 18 Jul 2008 11:09 am

Brother,

Para se recuperar valores de uma procedure, você deve ter um parâmetro "OUT", para que posteriormente possa lê-lo.

Dê uma pesquisada sobre procedure aqui no fórum, que irá encontrar exemplos interessantes.

Porém, como está iniciando, acho interessante dar uma olhada na nossa parte de "Tutorial/Apostila".

Qualquer coisa, manda pra gente.
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Sex, 18 Jul 2008 11:35 am

Entendi...
minha procedure já tem um parametro de saida, pois já havia pesquisado sobre isso. Por exemplo no sql server a syscolumns armazena tanto as colunas de uma tabela e de uma view como os parametros de uma procedure.
Mas a user_tab_columns não armazena os parametros das procedures.

abraços
alecoelho
Localização: Rio de Janeiro / RJ

Mensagemem Sex, 18 Jul 2008 11:38 am

Acho que ele está se referindo ao dicionário de dados.
Existe uma view chamada ALL_ARGUMENTS que tem todos parâmetros de cada procedure.

Se é isso sua dúvida, aqui tem um link legal:
http://glufke.net/oracle/viewtopic.php?t=11
dr_gori
Localização: Portland, OR USA

Thomas F. G

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

Mensagemem Sex, 18 Jul 2008 11:40 am

ACHO QUE E ISSO MESMO AMIGO...
VOU DA UMA TESTADA aqui

OBRIGADO
alecoelho
Localização: Rio de Janeiro / RJ

Mensagemem Sex, 18 Jul 2008 11:48 am

AINDA NÃO É ISSO...
EU PRECISO RECUPERAR OS NOMES DOS PARAMETROS DE UMA PROCEDURE E SEU TIPO

ABRAÇOS
alecoelho
Localização: Rio de Janeiro / RJ

Mensagemem Sex, 18 Jul 2008 11:56 am

AMIGOS,
CONSEGUI...MUITO OBRIGADO
alecoelho
Localização: Rio de Janeiro / RJ

Mensagemem Sex, 18 Jul 2008 2:06 pm

Brother, posta pra gente tua solução, ou, caso foi alguma solução apontada nos posts anteriores, nos diga qual é pois os demais podem aproveitar da sugestão tabém.
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Qui, 26 Mar 2009 11:02 am

Bom, eu precisei de algo parecido e ficou assim:

Código: Selecionar todos

create or replace procedure APPP_PES_PARAM_PROCEDURE(pPROCEDURE_NAME IN VARCHAR2,
                                                     p_cursor        OUT SYS_REFCURSOR   ) is
begin
   
       open p_cursor FOR
       SELECT AA.ARGUMENT_NAME PARAMETRO  ,
              AA.DATA_TYPE     ORACLETYPE ,
              AA.in_out        IN_OUT   
       FROM ALL_ARGUMENTS AA
       where aa.object_name = UPPER(pPROCEDURE_NAME)
       ORDER BY AA.SEQUENCE;
       
end APPP_PES_PARAM_PROCEDURE;


Abraços!
Toad
Localização: Seattle, WA

Matheus H. Gonçalves
www.toad.com.br
www.twitter.com/toadgeek

Mensagemem Qui, 22 Out 2009 5:06 pm

Dúvida: Uma vez que eu tenho o nome do parâmetro em uma variável de texto chamada vNM_PAR, existe alguma maneira de eu acessar o valor desse parâmetro, passando comoo varchar2 ?

Exemplo:

Eu executei a procedure acima que busca os nomes dos Parâmetros de uma determinada procedure.

Durante o loop que retorna esses parâmetros, eu atribuo o nome para vNM_PAR. O que quero agora é fazer algo assim:

Código: Selecionar todos
vVALOR_PARAM := (???)vNM_PAR;


Ou seja, pegar o valor do parâmetro, sendo que o nome do parâmetro está em uma variável varchar2.

Tem como??

Obrigado.
Toad
Localização: Seattle, WA

Matheus H. Gonçalves
www.toad.com.br
www.twitter.com/toadgeek

Mensagemem Sex, 23 Out 2009 4:25 pm

A pergunta ficou confusa demais? Deu pra entender minha necessidade?

Na real o que eu to tentando criar aqui é um método automático para criar o texto de um log em situações de exception, gravando os nomes dos parâmetros seguido dos valores dos parâmetros.

Os nomes eu já consigo recuperar... preciso agora dos valores.

Idéias?
Toad
Localização: Seattle, WA

Matheus H. Gonçalves
www.toad.com.br
www.twitter.com/toadgeek


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para SQL

Quem está online

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