當前位置:首頁 » 編程軟體 » oracle腳本導出數據

oracle腳本導出數據

發布時間: 2022-02-17 13:07:41

A. 怎麼在oracle下寫一個腳本,導出表數據為EXCEL格式文件

無法直接保存到excel中,但是可以保存到csv文件,同樣是excel的格式,方法如下:
譬如要把文件生成在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;
然後建立存儲過程,表是隨便建了一個,最後的文件名按要求需要按照當前日期的前一天生成,所以後邊文件名的地方write_file_name處就按照要求來了
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;

這樣基本就完成了,但是建立完畢後需要重啟資料庫,否則文件寫不進指定的目錄下

需要注意的是: write_content := v_aaa||' '||v_bbb; 這個位置

v_aaa|| 和v_bbb中間引號的地方是TAB符,否則輸出來的XLS文件中,會把這些字元串合在一個單元格中。

B. oracle資料庫如何導出整個資料庫腳本,用於備份資料庫

首先按full方式做exp導出(為了加快速度可以設置rows=no),然後做imp導入這里注意設置個indexfile=xxx.txt 參數這樣就能將你創建所有對象的腳本輸出到xxx.txt文件里了。當然了你可以使用工具如:toad,會有導出script的選項更方便點。

C. 如何將Oracle表裡的數據導出成insert into腳本

用plsql導出就行

1、登錄後,依次點擊,工具—導出表

2、然後選擇「SQL插入」,上邊摁ctrl選擇表,選好路徑,點導出就行了

D. 怎樣將Oracle中的數據導出成SQL腳本

方法/步驟
首先,打開PL/SQL Developer,選中要生成SQL的表。
滑鼠點擊右鍵—>「Export data」,會彈出「Export Tables」對話框。選中第二個頁簽「SQL Inserts」,根據自己的需要設置導出條件即可。比如我需要創建表的SQL,則選中如下所示的選項,再選擇「Output file」輸出到文件,點擊按鈕「Export」,即可導出。
也可以選擇插入數據的SQL腳本,大家按需所選即可。

E. Oracle使用expdp方式導出 如何編寫一個BAT的腳本,使資料庫的備份文件可以根據日期備份

樓主:供參考
利用任務計劃、批處理文件和oracle的exp導出功能,可以根據日期自動生成oracle備份文件,大大方便了oracle數據備份。
建議一(做周備份並壓縮為rar)以下為oracle 自動備份批處理文件內容,請配合任務計劃實現 :
例:
@ECHO off
SET backPATH=d:\
ECHO 准備備份資料庫
REM 7天一個循環
IF EXIST %backPATH%\one goto one
IF EXIST %backPATH%\TWO goto TWO
IF EXIST %backPATH%\THREE goto THREE
IF EXIST %backPATH%\four goto four
IF EXIST %backPATH%\FIVE goto FIVE
IF EXIST %backPATH%\SIX goto SIX
IF EXIST %backPATH%\SEVEN goto SEVEN
ECHO E > %backPATH%\one

F. 如何將oracle資料庫實例 導出到sql腳本

如果是一個表 可以先查詢,然後在界面結果右擊直接導出sql;
要是整個資料庫 就得用tools了

G. 寫個shell腳本連接oracle資料庫查詢某表數據導出為txt文件,再發送到第三

1、簡單的單列
#!/bin/sh
sqlplus 'user001/12345678'<< EOF
set define off
set hea off
spool vip1.txt
select username from ACCOUNT where LEVEL=7;
spool off
quit;
EOF
sed -i 's/[ ]*//g' ~/vip1.txt
sed -i '/^$/d' ~/vip1.txt
sed -i '1d' ~/vip1.txt
sed -i '$d' ~/vip1.txt
scp -P22 ~/vip1.txt [email protected]:/root
2、復雜的多列
#!/bin/sh
cid=$1;
today=`date +%Y-%m-%d-%H.%M`
ym=`date +%Y%m`
ymd=`date -d -1days +%Y%m%d`
last_ym=`date -d last-month +%Y%m`
next_ym=`date -d next-month +%Y%m`
file=chat_recorder_${cid}_20140707-11.xls

if [[ $1 == '' ]];then
echo "Usage: $0 company_id "
exit 0;
fi
sqlplus 'user002/12345678' << EOF
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
spool ${file}
select a.*,b.* from recorder_${ym} a,t_${ym} b where a.company_id='$cid' and a.create_time between TO_DATE('2014-07-07 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and TO_DATE('2014-07-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and a.chat_id=b.chat_id order by b.chat_id ;
spool off
quit;
EOF
sed -i '/select/d' $file
zip -r ${file}.zip $file
scp -P22 ${file}.zip [email protected]:/opt

H. 如何導出一個oracle資料庫的所有用戶的Sql腳本

需要用到exp命令。
1、首先按鍵盤的win鍵+R鍵,輸入cmd,回車,進入命令提示符。

2、 使用cd命令進入要存放文件的路徑下。

3、輸入exp命令,「exp 用戶名/密碼@本地實例名 file=導出文件名稱.dmp log=生成日誌名稱.log owner=用戶名」(不含引號),如圖:

其中:owner=用戶名 就是被導出的用戶下的全部內容。

I. 你好,我想寫個shell腳本連接oracle伺服器查詢某表數據並且導出到txt文本

使用shell調用sqlplus來執行sql語句,導出到文件可以通過spool命令指定文件,我從自己曾經寫的腳本截取一段給你示例吧,如果你熟悉shell編寫的話,很容易改造成自己需要的
參數1-6分別是表名,oracle用戶名,oracle密碼,oracle伺服器ip地址,oracle伺服器埠,oracle伺服器的服務名(如果不確定聯系DB管理員)

T_NAME=$1

USERID=$2
PASSWD=$3
IP=$4
PORT=$5
SERVICENAME=$6
DB_LINK_STR=$USERID/$PASSWD@$IP:$PORT/$SERVICENAME
sqlplus -S $DB_LINK_STR<<EOF
set HEADING OFF
SET ECHO OFF
SET FEEDBACK OFF
SET TERMOUT OFF
SET LINESIZE 1000
SET TRIMSPOOL ON
spool temp.out
select COLUMN_NAME||' '||DATA_TYPE||' '||DATA_LENGTH||' ',DATA_DEFAULT from user_tab_columns where table_name='$T_NAME' order by column_id;
spool off
exit
EOF
sed -i '/^$/d' temp.out

執行完畢後,就會出現temp.out文件,裡面是指定表的一些信息:列名,數據類型,數據長度和默認值,且以空格分隔

J. sql腳本實現Oracle資料庫中某幾張表的導出功能

host exp lis/lis tables=lccont,ldcode file=/tmp/tabexp.dmp
drop table lis.lccont;
drop table lis.ldcode;
host imp lis/lis tables=lccont,ldcode file=/tmp/tabexp.dmp

熱點內容
c語言宏定義字元串 發布:2024-04-20 18:22:45 瀏覽:471
現在玩游戲的電腦需要什麼配置 發布:2024-04-20 17:09:57 瀏覽:195
游樂園的密碼一般為多少 發布:2024-04-20 17:09:51 瀏覽:41
興元安卓機怎麼進系統 發布:2024-04-20 17:07:16 瀏覽:806
我的世界伺服器如何放村民 發布:2024-04-20 17:05:35 瀏覽:359
手機反編譯dex 發布:2024-04-20 17:01:01 瀏覽:704
安卓怎麼設置微信拍一拍 發布:2024-04-20 16:44:48 瀏覽:569
三星3熱點密碼怎麼設置 發布:2024-04-20 16:30:52 瀏覽:579
用keil編譯顯示警告warn 發布:2024-04-20 16:27:09 瀏覽:894
訪問在哪兒 發布:2024-04-20 16:20:42 瀏覽:201