無(wú)法直接保存到excel中,但是可以保存到csv文件,同樣是excel的格式,方法如下:
成都創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,先為大興安嶺等服務(wù)建站,大興安嶺等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為大興安嶺企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
譬如要把文件生成在d盤下的test目錄下:
1,在d盤根目錄下新建test目錄
2,sqlplus以system用sysdba登錄
3,create or replace directory TMP as ’d:\test’;
4,grant read on directory TMP to user;
5,alter system set utl_file_dir='d:\test' scope=spfile;
然后建立存儲(chǔ)過(guò)程,表是隨便建了一個(gè),最后的文件名按要求需要按照當(dāng)前日期的前一天生成,所以后邊文件名的地方write_file_name處就按照要求來(lái)了
create or replace PROCEDURE SP_OUTPUT
(
on_flag OUT NUMBER,
out_reason OUT VARCHAR2)
is
v_code number;
v_text varchar2(255);
file_handle utl_file.file_type;
Write_content VARCHAR2(1024);
Write_file_name VARCHAR2(50);
v_aaa varchar2(5);
v_bbb varchar2(5);
cursor cur_sp_out
is
select aaa,bbb
from aaa;
begin
open cur_sp_out;
loop
fetch cur_sp_out into v_aaa,v_bbb;
exit when cur_sp_out%notfound;
write_file_name := to_char(SYSDATE,'YYYYMMDD')||'.xls';
file_handle := utl_file.fopen('TMP',write_file_name,'a');
write_content := v_aaa||' '||v_bbb;
--write file
IF utl_file.is_open(file_handle) THEN
utl_file.put_line(file_handle,write_content);
END IF;
--close file
utl_file.fclose(file_handle);
end loop;
close cur_sp_out;
v_code := 0;
v_text := '完成';
exception
when others then
on_flag := SQLCODE;
out_reason := SQLERRM;
begin
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
end IF;
end;
rollback;
end;
這樣基本就完成了,但是建立完畢后需要重啟數(shù)據(jù)庫(kù),否則文件寫(xiě)不進(jìn)指定的目錄下
需要注意的是: write_content := v_aaa||' '||v_bbb; 這個(gè)位置
v_aaa|| 和v_bbb中間引號(hào)的地方是TAB符,否則輸出來(lái)的XLS文件中,會(huì)把這些字符串合在一個(gè)單元格中。
1、要想連接到一個(gè)數(shù)據(jù)庫(kù),先得配置一個(gè)tnsnames.ora文件。路徑位于 【XX】/NETWORK/ADMIN/tnsnames.ora?!綳X】視具體情況而定。
截圖中紅框標(biāo)記的地方需要改成你需要連接的數(shù)據(jù)庫(kù)的信息。
2、測(cè)試數(shù)據(jù)庫(kù)是否能連通。
運(yùn)行CMD,命令行執(zhí)行:sqlplus 用戶名/密碼@數(shù)據(jù)庫(kù)。
3、編寫(xiě)導(dǎo)出存儲(chǔ)過(guò)程的腳本,保存為E:\export.sql。大概如下(標(biāo)紅框的地方替換成要保存腳本的路徑和需要導(dǎo)出的存儲(chǔ)過(guò)程列表):
SET echo off ;
SET heading ? off ;
SET feedback ? off ;
SPOOL 'C:/EXP/DDL/PRC_JG_JGTZ.SQL' replace
SELECT CASE
? ?WHEN LINE = 1 THEN
? ? 'CREATE OR REPLACE ' || TEXT
? ?WHEN LINE = MAX_LINE THEN
? ? TEXT || CHR(10 ) || '/'
? ?ELSE
? ? TEXT
?END
FROM USER_SOURCE A
LEFT JOIN (SELECT A.NAME,A.TYPE, MAX(LINE) MAX_LINE
? ? ? ? ?FROM USER_SOURCE A
? ? ? ? WHERE TYPE in ( 'PROCEDURE', 'PACKAGE' ,'PACKAGE BODY' )
? ? ? ? GROUP BY A.NAME,A.TYPE ) B ON A.NAME||A.TYPE = B.NAME||B.TYPE
WHERE A.TYPE in ('PROCEDURE' , 'PACKAGE', 'PACKAGE BODY' ) AND A.NAME IN
(
'ETL_FACT_JG_SAEINDEX_SCALE'
,'ETL_FACT_JG_SAEINDEX_SCALE_OLD'
,'ETL_DM_JG_CIRC'
)
ORDER BY a.NAME||a.TYPE , LINE;
SPOOL OFF
4、執(zhí)行剛剛編寫(xiě)的腳本文件,導(dǎo)出指定的存儲(chǔ)過(guò)程。
連接數(shù)據(jù)庫(kù)后,輸入:@E:\export.sql
如果遇到了截圖中出現(xiàn)的問(wèn)題,請(qǐng)參照文章結(jié)尾的【注意事項(xiàng)】。
5、若要在新的數(shù)據(jù)庫(kù)上創(chuàng)建導(dǎo)出的存儲(chǔ)過(guò)程,只需連上新的數(shù)據(jù),然后執(zhí)行剛生成的腳本文件即可。
連接數(shù)據(jù)庫(kù)后輸入:@C:\exp\ddl\PRC_JG_JGTZ.SQL
注意事項(xiàng)
若出現(xiàn)亂碼,可能需要將編寫(xiě)的sql文件轉(zhuǎn)換為utf-8格式。
若提示無(wú)法創(chuàng)建spool文件,請(qǐng)確保目錄C:/EXP/DDL存在,或者指定新的路徑。
1、首先在SQL Window窗口中,查詢需要導(dǎo)出的數(shù)據(jù)。
2、在查詢的結(jié)果集上(注意不要選中任何一個(gè)行或者單元格)右鍵--【Copy to Excel】--【Copy as xls/xlsx】導(dǎo)出到97-2003格式的.xls或者2007之后的xlsx文件.
3、如果不想導(dǎo)出查詢的全部數(shù)據(jù),可以在左側(cè)選中需要導(dǎo)出的行,然后步奏同上。
4、點(diǎn)擊導(dǎo)出后,系統(tǒng)自動(dòng)打開(kāi)導(dǎo)出的excel文件內(nèi)容,這里面包括數(shù)據(jù)以及查詢這些數(shù)據(jù)的sql腳本。
5、點(diǎn)擊“SQL Statement”可以查看數(shù)據(jù)庫(kù)腳本。
6、下面就是操作excel文件了。點(diǎn)擊【文件】--【另存為】保存excel文件
7、選擇保存路徑,輸入文件名稱。
在PL/SQL客戶端里查詢出你要導(dǎo)出的數(shù)據(jù),選中過(guò)后右擊,導(dǎo)出結(jié)果 -- SQL file
新聞標(biāo)題:oracle如何導(dǎo)出腳本,腳本導(dǎo)出oracle數(shù)據(jù)庫(kù)數(shù)據(jù)
文章起源:http://jinyejixie.com/article12/hsdsgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、微信小程序、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容