獲取oracle存儲過程
oracle資料庫中,已建立好的存儲過程信息存儲在系統表ALL_SOURCE 中,需要用sysdba身份登錄資料庫,進行查詢操作,SQL命令如下:
SELECTline,textFROMALL_SOURCE
WHERETYPE='PROCEDURE'
ANDNAME='過程名稱'
ANDOWNER='用戶名'
ORDERBYline;
存儲過程分成多行,每一行會存儲為一條數據,所以,查詢出來的會是多行,line表示行號。
ALL_SOURCE 表中還存儲了以下類型信息:
SQL>selectdistincttypefromall_source;
TYPE
------------
TYPE(對象)類型
TYPEBODY類型體
PROCEDURE存儲過程
FUNCTION函數
TRIGGER觸發器
PACKAGE包
PACKAGEBODY包體
⑵ 如何查看oracle的存儲過程
使用tode或者Navicat 或者navigtor等連接oracle的工具
找到procere的選項即可查看所有的存儲過程,點擊某個名字可以看到其中的定義
⑶ 如何獲取ORACLE存儲過程的參數個數
查看源代碼啊:
查看存儲過程的原代碼:
select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME') from al;
其中,PROCEDURE_NAME 是你的存儲過程的名字,用大寫!
⑷ Oracle怎麼導出存儲過程
1、首先登錄到資料庫中,點擊右上角有個工具欄,點擊工具欄上的tools。
⑸ 如何獲取oracle 執行過的存儲過程
select t.sql_id,
t.sql_text,
s.plan_hash_value,
s.optimizer_cost,
s.executions_total,
s.elapsed_time_total,
s.disk_reads_total,
s.buffer_gets_total
from DBA_HIST_SQLSTAT s, DBA_HIST_SQLTEXT t
where s.sql_id=t.sql_id
and t.sql_text like'%存儲過程名稱攔清%';
沒有想簡鄭前到其他好辦法,確實不太好查了,把存叢春儲過程當作SQL來查找吧。
⑹ 如何查詢oracle庫中已經存在的存儲過程
命令行:
sqlplus / as sysdba
select name from user_source where type='PROCEDURE';
可查看sys用戶下所有存游舉消儲過程名字
select text from user_source where name='XXX'
可查看該存神知儲過程的內容
plSQLdevloper工具:
左側找到『Proceres』,點開之後即可查看答滾當前用戶的所有存儲過程。
右鍵點擊存儲過程,選擇『view』可查看詳細信息
⑺ oracle怎樣查看正在執行的存儲過程
1、在存儲過程中加一個輸出參數,執行完存儲過程後,判斷輸出參數的值;
2、查看存儲過程中處理數據後,你要的效果達到沒有。
⑻ oracle的存儲過程怎麼查看
在pl/sql左邊樹形列表中找到A這個存儲過程,然後展開A前面的加號,在點擊reference就是調用A的函數和過程
⑼ ORACLE 獲取包中存儲過程或函數的參數
該包用於 動態獲取包中存儲過程或者函數的參數。
create or replace package SF_GET_ARGUMENTS_PKG is
-- Author : SANFU
-- Created : 2020/7/22 14:40:49
-- Purpose : 動態獲取包中存儲過程或者函數的參數
PROCEDURE get_arguments(p_pkg_name in VARCHAR2, p_obj_name in VARCHAR2);
PROCEDURE pf_get_arguments(p_pkg_name in VARCHAR2,
茄脊差 p_obj_name in VARCHAR2);
end SF_GET_ARGUMENTS_PKG;
/
create or replace package body SF_GET_ARGUMENTS_PKG is
/*============================================*
* Author : CZH
* Created : 2020-07-22 15:00:12
* ALERTER :
* ALERTER_TIME :
* Purpose :
* Arg_number : 2
* P_PKG_NAME :包名
* P_OBJ_NAME :存儲過程名或函數名
*============================================*/
PROCEDURE get_arguments(p_pkg_name in VARCHAR2, p_obj_name in VARCHAR2) IS
v_pkg_name varchar2(100) := upper(p_pkg_name);
v_obj_name varchar2(100) := upper(p_obj_name);
v_arg_number NUMBER;
cursor data_cur is
select t.PACKAGE_NAME,
t.OBJECT_NAME,
t.ARGUMENT_NAME,
t.IN_OUT,
count(t.ARGUMENT_NAME) over(PARTITION BY t.OBJECT_NAME) arg_number,
row_number() over(partition by t.OBJECT_NAME order by t.POSITION asc) rank_position
顫皮 from sys.user_arguments t
where t.PACKAGE_NAME = v_pkg_name
and t.OBJECT_NAME = v_obj_name
and t.POSITION <> 0;
begin
select count(1)
into v_arg_number
from sys.user_arguments t
where t.PACKAGE_NAME = v_pkg_name
and t.OBJECT_NAME = v_obj_name
and t.POSITION <野虧> 0;
dbms_output.put_line('/*============================================*');
dbms_output.put_line(' * Author : SANFU');
dbms_output.put_line(' * Created : ' ||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
dbms_output.put_line(' * ALERTER : ');
dbms_output.put_line(' * ALERTER_TIME : ');
dbms_output.put_line(' * Purpose : ');
dbms_output.put_line(' * Obj_Name : ' || v_obj_name);
dbms_output.put_line(' * Arg_Number : ' || v_arg_number);
for rec in data_cur loop
dbms_output.put_line(' * ' || rec.ARGUMENT_NAME || ' :');
end loop;
dbms_output.put_line(' *============================================*/');
end get_arguments;
--獲取參數
PROCEDURE pf_get_arguments(p_pkg_name in VARCHAR2,
p_obj_name in VARCHAR2) IS
v_pkg_name varchar2(100) := upper(p_pkg_name);
v_obj_name varchar2(100) := upper(p_obj_name);
v_attr varchar2(100);
cursor data_cur is
select t.PACKAGE_NAME,
t.OBJECT_NAME,
t.ARGUMENT_NAME,
t.IN_OUT,
count(t.ARGUMENT_NAME) over(PARTITION BY t.OBJECT_NAME) arg_number,
row_number() over(partition by t.OBJECT_NAME order by t.POSITION asc) rank_position
from sys.user_arguments t
where t.PACKAGE_NAME = v_pkg_name
and t.OBJECT_NAME = v_obj_name
and t.POSITION <> 0;
begin
dbms_output.put_line(v_pkg_name || '.' || v_obj_name || '(');
for rec in data_cur loop
if rec.in_out = 'IN' then
v_attr := '';
elsif rec.in_out = 'OUT' then
v_attr := '';
elsif rec.in_out = 'IN/OUT' then
v_attr := '';
end if;
if data_cur%ROWCOUNT = rec.arg_number then
dbms_output.put_line(lower(rec.ARGUMENT_NAME) || ' =>' ||
' ' || v_attr || lower(rec.ARGUMENT_NAME));
else
dbms_output.put_line(lower(rec.ARGUMENT_NAME) || ' =>' ||
' ' || v_attr || lower(rec.ARGUMENT_NAME) || ',');
end if;
end loop;
dbms_output.put_line(');');
end pf_get_arguments;
end SF_GET_ARGUMENTS_PKG;
/