2012-08-28 30 views
5

Tôi muốn lấy tên của tham số trong plsql.Nhận tên của thông số

Ví dụ,

procedure sp_example(myParam in varchar2) is 

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

Có cách nào để có được tên của myParam sử dụng phản chiếu, thay vì cứng mã hóa nó?

Trả lời

6

Hãy thử:

select argument_name from all_arguments where object_name = 'SP_EXAMPLE'; 

Quan điểm này cũng có thể hiển thị cho bạn những kiểu dữ liệu, vị trí, vv, và bạn có thể sử dụng nó trong SQL hoặc PL/SQL. Nhiều thông tin trong các chế độ xem siêu dữ liệu khác nhau.

+1

Bạn có thể sử dụng 'OWA_UTIL.who_called_me' và một 'thủ tục who_am_i' để tự động được chủ sở hữu thủ tục và tên . Nhưng tiếc là không có cách dễ dàng để có được tên của thủ tục trong một gói. http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkytewhocalledme.html –

1

Nếu bạn muốn nhận được những cái tên của các tham số lấy ra ở các vị trí tương ứng của họ, sử dụng

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

Các vấn đề liên quan