當前位置:首頁 » 存儲配置 » sqlplus導出存儲過程

sqlplus導出存儲過程

發布時間: 2023-02-28 23:20:48

『壹』 如何導出ORACLE指定存儲過程

1、要想連接到一個資料庫,先得配置一個tnsnames.ora文件。路徑位於 【XX】/NETWORK/ADMIN/tnsnames.ora。【XX】視具體情況而定。

截圖中紅框標記的地方需要改成你需要連接的資料庫的信息。


注意事項

若出現亂碼,可能需要將編寫的sql文件轉換為utf-8格式。

若提示無法創建spool文件,請確保目錄C:/EXP/DDL存在,或者指定新的路徑。

『貳』 oracle sql/plus中執行存儲過程

因為有輸出參數,所以只能通過declare塊執行,如下:

declare
聲明變數,就是CodeType 、input_code、cu_patient ,可對前兩個直接賦值
begin
GetSampleInfo(CodeType, input_code,cu_patient) ;
end;
/

----
多動動手!如果沒輸出參數可以直接"exec 過程名(參數)"調用,否則就按我說的做,自己往裡添加代碼就行

『叄』 oracle9i 中exp/imp 語句能否實現只導入或者導出部分表,或者部分存儲過程等等

可以使用expdp 和 impdp 這對備份恢復命令,
前提是你的oracle帳戶必須有物理文件的read和write許可權.
如果有許可權,就直接expdp和impdp,成功後有一個mpfile.log 和mpfile.dmp 把dmp復制過去就可以直接impdp 了.

具體的可以給個參考:
--導出
SQL>create directory mp_dir as 'f:\bak'; ---DBA用戶,確定備份文件放哪裡(已經存在的目錄)?
SQL>grant read,write on directory mp_dir to scott; --賦予scott用戶的讀寫許可權
C:>expdp scott/tiger directory=mp_dir [mpfile=mybackup.dmp] [tables = emp,dept] --mpfile設置備份文件名 tables 需要導出那些表[tab1,tab2,....]
--導入
C:>impdp scott/tiger directory = mp_dir mpfile = mybackup.dmp tables = [表名1,表名2 ...]
SQL>是 在sqlplus下操作的, C:>是在系統命令行上操作

『肆』 sqlplus中怎麼執行帶參數的存儲過程

SQL> create or replace procere jl_test
2 (a in varchar2,b out varchar2)
3 as
4 begin
5 b:= a;
6 end;
7 /
SQL> var c varchar2(10);
SQL> exec jl_test('01',:c)
PL/SQL 過程已成功完成。
SQL> print c
C
--------------------------------
01

『伍』 oracle 11g expdp 可以導出存儲過程嗎

從oracle
12c
備份(expdp)出來的包,還原到11g里,想想都知道會有兼容性問題。
果不其然,報錯了:
ora-39142:
版本號
4.1
(在轉儲文件
「叉叉叉.expdp」
中)

兼容
之類
後來才知道,在12c中備份出來時,應指定版本信息,例如我要導進11g的庫(具體版本為11.1.0.6.0,打開sqlplus就能看到),則version=11.1.0.6.0
語句:
在12c備份
?
1
expdp
system/password@sid12c
directory=dbbak
mpfile=20160321.expdp
logfile=20160321.log
schemas=leftfist
version=11.1.0.6.0
在11g中還原
?
1
impdp
s

『陸』 Oracle批量導出存儲過程(保持每個存儲過程獨立)

略微復雜,需要存儲過程實現。

1、創建輸出路徑,比如你要在d盤test目錄下輸出,你就先在d盤根目錄下建立一個test的目錄。

2、sqlplus下以sysdba登錄,執行以下語句

createorreplacedirectoryTMPas'd:	est';

grantread,writeondirectoryTMPtoscott;--比如我用的scott用戶

altersystemsetutl_file_dir='d: est'scope=spfile;

3、以上步驟執行完,需要重啟資料庫。

4、創建一個存儲過程,代碼如下(基本是不用改動,原封復制即可):

CREATEORREPLACEPROCEDURESP_OUTPUT_PROCEDUREis
file_handleutl_file.file_type;
Write_contentVARCHAR2(1024);
Write_file_nameVARCHAR2(50);
v_namevarchar2(50);
v_textvarchar2(2000);
cursorcur_procere_nameis
selectdistinctnamefromuser_sourcewheretype='PROCEDURE';
cursorcur_sp_outis
selectt.text
from(select0line,'CREATEORREPLACE'text
fromal
union
selectline,text
fromuser_source
wheretype='PROCEDURE'
andname=v_name)t
orderbyline;
begin
opencur_procere_name;
loop
fetchcur_procere_name
intov_name;
exitwhencur_procere_name%notfound;
write_file_name:=v_name||'.txt';
opencur_sp_out;
loop
fetchcur_sp_out
intov_text;
exitwhencur_sp_out%notfound;
file_handle:=utl_file.fopen('TMP',write_file_name,'a');
write_content:=v_text;
--writefile
IFutl_file.is_open(file_handle)THEN
utl_file.put_line(file_handle,write_content);
ENDIF;
--closefile
utl_file.fclose(file_handle);
endloop;
closecur_sp_out;
endloop;
closecur_procere_name;
end;

5、創建完畢執行存儲過程,這個就不贅述了,執行完畢後,你會發現d盤test目錄下的文件名就是以存儲過程名命名的txt文件,如圖:

熱點內容
手機版編程軟體 發布:2025-07-07 22:57:22 瀏覽:120
linux下執行sh腳本 發布:2025-07-07 22:49:00 瀏覽:127
雲盤怎麼存儲資料 發布:2025-07-07 22:49:00 瀏覽:914
禁止別人綁定自己伺服器ip 發布:2025-07-07 22:45:58 瀏覽:55
qqandroid版 發布:2025-07-07 22:29:59 瀏覽:41
python解壓gz 發布:2025-07-07 22:03:19 瀏覽:622
安卓俄羅斯方塊源碼 發布:2025-07-07 21:56:11 瀏覽:475
安卓手機之王是哪個手機 發布:2025-07-07 21:44:30 瀏覽:615
安卓照片存儲位置 發布:2025-07-07 21:31:58 瀏覽:966
kingcmsphp 發布:2025-07-07 21:31:49 瀏覽:393