當前位置:首頁 » 數據倉庫 » oracle資料庫導出大批量數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle資料庫導出大批量數據

發布時間: 2023-04-28 21:44:04

① oracle資料庫可否批量導出存儲過程

Oracle批量導出存儲過程
法一:
PL/sql工具導出
法二:
Sql代碼
SET echo off;
SET heading off;
SET feedback off;
spool C:\Documents and Settings\Administrator\桌面\proc.sql;--1、用sys用戶等陸的話:
Sql代碼
select text from dba_source where owner= 'lingfeng' and type = 'PROCEDURE';--2、用一般用戶(要導出其下存儲過程的用戶):
Sql代碼
select text from user_source;
spool off;
法三:(自己寫存儲過程導出)
1.創建DIRECTORY
Sql代碼
create or replace directory PROCE_DIR as 'C:/Documents and Settings/Administrator/桌面';如創建報沒許可權的錯誤,則以system的用戶登錄,給當前用戶賦權--賦權語句
Sql代碼
grant create any directory to bijian;
--撤權語句
Sql代碼
revoke create any directory from bijian;
創建之後可通過如下語句查詢是否創建成功
Sql代碼
select * from dba_directories;
2.創建導出存儲過程
Sql代碼
create or replace procere 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中Sql代碼
begin
loadproce('bijian');
end;

② oracle如何導出資料庫表所有數據

你好
你可以使用exp 護著expdp 來進行表的導出導入
如果數據量大的話,你還可以使用RMAN來操作
或者使用XTTS進行遷移,
再或者,直接遷移存儲
望採納

③ 怎樣導出oracle整個資料庫

1 將資料庫跡兆蘆TEST完全導出,用戶姿帶名system 密碼manager 導出到D:\chu.dmp中x0dx0a exp system/manager@TEST file=d:\chu.dmp full=yx0dx0a2 將資料庫中system用戶與sys用戶的表導出x0dx0a exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)x0dx0a3 將資料庫中的表table1 、table2導出x0dx0a exp system/manager@TEST file=d:\chu.dmp tables=(table1,table2) x0dx0a4 將資料庫中的表table1中的欄位filed1以"00"打頭的猜洞數據導出x0dx0a exp system/manager@TEST file=d:\chu.dmp tables=(table1) query=\" where filed1 like ༼%'\"x0dx0a x0dx0a 上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。x0dx0a 不過在上面命令後面 加上 compress=y 就可以了