2012-08-28 22 views
5

Chcę uzyskać nazwę parametru w plsql.Uzyskaj nazwę parametru

Na przykład

procedure sp_example(myParam in varchar2) is 

paramName varchar2(30); 
begin 
    paramName = 'myParam'; 
end 
end procedure sp_example; 

Czy istnieje sposób, aby uzyskać nazwę myParam użyciu odbicia, zamiast ciężko kodowania?

Odpowiedz

6

Spróbuj:

select argument_name from all_arguments where object_name = 'SP_EXAMPLE'; 

Pogląd ten może również pokazać typy danych, stanowiska itd i można go używać w SQL lub PL/SQL. Mnóstwo informacji w różnych widokach metadanych.

+1

Można użyć '' OWA_UTIL.who_called_me' i procedury who_am_i' dynamicznie dostać właściciel procedura i nazwisko . Ale niestety nie ma łatwego sposobu na uzyskanie nazwy procedury w pakiecie. http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkytewhocalledme.html –

1

Jeśli chcesz uzyskać nazwy parametrów odczytanych w odpowiednich pozycjach, użyj

select argument_name from user_arguments where object_name='SAMPLE_PROC' order by position;