Oracle批量匯出儲存過程

2021-09-01 16:29:08 字數 2524 閱讀 7274

法一:

pl/sql工具匯出

法二:

set echo off;

set heading off;

set feedback off;

spool c:\documents and settings\administrator\桌面\proc.sql;

--1、用sys使用者等陸的話:

select   text   from   dba_source   where   owner= 'lingfeng'    and   type   = 'procedure';
--2、用一般使用者(要匯出其下儲存過程的使用者):

select   text   from   user_source;

spool off;

法三:(自己寫儲存過程匯出)

1.建立directory

create or replace directory proce_dir as 'c:/documents and settings/administrator/桌面';
如建立報沒許可權的錯誤,則以system的使用者登入,給當前使用者賦權

--賦權語句

grant create any directory to bijian;
--撤權語句

revoke create any directory from bijian;
建立之後可通過如下語句查詢是否建立成功

select * from dba_directories;
2.建立匯出儲存過程

create or replace procedure loadproce(owner varchar2)

is type user_source_table_type is table of user_source.text%type index by binary_integer;

user_source_table user_source_table_type;

file_handle utl_file.file_type;

stor_text varchar2(4000);

sql_stat varchar2(1000);

sql_stat2 varchar2(1000);

sql_stat3 varchar2(1000);

ncount number;

i number;

begin

sql_stat:='select distinct(name) from all_source where owner = ''' || upper(owner) || '''';

execute immediate sql_stat bulk collect into user_source_table;

file_handle:=utl_file.fopen('proce_dir','test.sql','w');

for j in 1..user_source_table.count loop

i:=1;

sql_stat2:='select max(line) from all_source where owner=''' || upper(owner) || ''' and name=''' || user_source_table(j) || '''';

--dbms_output.put_line(sql_stat2);

execute immediate sql_stat2 into ncount;

while i<=ncount loop

sql_stat3:='select text from all_source where owner=''' || upper(owner) || ''' and name=''' || user_source_table(j) || ''' and line = ' || i;

--dbms_output.put_line(sql_stat3);

execute immediate sql_stat3 into stor_text;

i:=i+1;

utl_file.put(file_handle,stor_text);

end loop;

end loop;

utl_file.fclose(file_handle);

commit;

end loadproce;

3.呼叫,將type body、procedure、type、function、trigger、package body、package儲存到桌面的test.sql中

begin

loadproce('bijian');

end;

匯出oracle資料庫儲存過程

專案結束了,想把自己寫的儲存過程匯出儲存乙份就寫了這麼乙個簡單的指令碼,拿出來給大家共享一下。其實很簡單,主要用到user procedures user source兩個檢視,大家一看就知道了。好像網上搜到的一些都不夠全面,而且零零散散,如果覺得好的話就支援一下吧,usr bin ksh prof...

ORACLE匯出儲存過程SQL至檔案

oracle匯出儲存過程sql至檔案 專案部署時,需要遷移儲存過程,利用工具匯出過程sql,只是按照順序匯出,不能體現依賴關係,不能一次執行成功,比較麻煩。通過user source dba source all source查詢oralce資料庫物件sql語句,並匯出至檔案。自己動手,當然知道那些...

如何使用PL SQL工具批量匯出表 儲存過程 序列

plsql作為oracle資料庫進行操作常用工具,可以很方便的對錶以及資料進行處理。工作中如果遇到資料庫轉移,需要將老資料庫中的建表 建序列和儲存過程語句匯出,然後匯入到新的資料庫中這樣序列號會自動,繼續使用原來的序列號。小編介紹下如何使用pl sql工具批量匯出建表指令碼 儲存過程 序列指令碼?首...