Página 1 de 1
Como Recuperar os parametros de uma procedure
Enviado: Sex, 18 Jul 2008 11:04 am
por alecoelho
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
Enviado: Sex, 18 Jul 2008 11:09 am
por Trevisolli
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.
Enviado: Sex, 18 Jul 2008 11:35 am
por alecoelho
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
Enviado: Sex, 18 Jul 2008 11:38 am
por dr_gori
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
Enviado: Sex, 18 Jul 2008 11:40 am
por alecoelho
ACHO QUE E ISSO MESMO AMIGO...
VOU DA UMA TESTADA aqui
OBRIGADO
Enviado: Sex, 18 Jul 2008 11:48 am
por alecoelho
AINDA NÃO É ISSO...
EU PRECISO RECUPERAR OS NOMES DOS PARAMETROS DE UMA PROCEDURE E SEU TIPO
ABRAÇOS
Enviado: Sex, 18 Jul 2008 11:56 am
por alecoelho
AMIGOS,
CONSEGUI...MUITO OBRIGADO
Enviado: Sex, 18 Jul 2008 2:06 pm
por Trevisolli
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.
Enviado: Qui, 26 Mar 2009 11:02 am
por Toad
Bom, eu precisei de algo parecido e ficou assim:
Selecionar tudo
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!
Enviado: Qui, 22 Out 2009 5:06 pm
por Toad
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:
Ou seja, pegar o valor do parâmetro, sendo que o nome do parâmetro está em uma variável varchar2.
Tem como??
Obrigado.
Enviado: Sex, 23 Out 2009 4:25 pm
por Toad
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?