oracle数据库怎么导出dat文件_论将数据从数据库导出为dat格式.docx
論將數據庫中的數據導出為dat格式
一、寫作目的:
在生產過程中,往往需要將數據庫中的某個表或者視圖中的數據導出為某固定格式的文本文件,如txt、dat或xls等格式。本文以導出dat文件為例,詳述在EBS環境中,如何根據客戶需求將數據庫中滿足條件的的數據導出為dat文件。
二、客戶需求:
財務系統每日向ODS系統提供債券模塊信息表XXBOCQ_BND_BOOK_B全量數據,保留原格式,不做任何篩選轉換調整。
1、文件命名和格式:
格式: dat文件、ok文件和tar文件。
命名: XXBOCQ_BND_BOOK_B.dat和finish_日期.ok(如:finishok)和fin_日期.tar (如:fintar);
注:dat文件為全量數據文件,每個字段之間以“|”隔開,并且每行數據結尾以“|”結尾。ok文件為生成dat文件后生成的就緒文件。tar文件為將dat文件打包后的文件數據庫當前日期。
2、文件存放路徑:
應用服務器的/ebsap/appl/outpathfile路徑下,如果沒有ODSFile目錄,則創建ODSFile目錄,每日在ODSFile目錄下,創建以當日日期為名稱的目錄,存放dat文件,ok文件以及tar文件。
3、文件字符集:
傳輸文件采用GBK字符集編碼。
三、實現思路:
整體思路:先通過提交EBS請求來生成dat文件和ok文件,然后再通過一個請求將生成的dat文件打包,并在固定的路徑下生成目標目錄,并將tar文件移動到目標路徑。
第一步:先生成dat文件。有兩種生成dat文件方式:
1:通過oracle的spool命令,生成dat文件。
2:通過oracle的utl_file包生成dat文件。
下面兩種方法都做一介紹。
第二步:生成tar文件,并移動至目標路徑。通過shell編程,將文件tar包并移動。
四、實現方法:
A、通過spool命令生成dat文件。
1、spool簡介:通過spool 命令,可以將select 數據庫的內容寫到文件中,通過在sqlplus設置一些參數,使得按指定方式寫到文件中。
spool命令的語法如下:
spool [file_name [create|replace|append] off|out]
其中file_name指定一個操作系統文件
create將創建一個指定的file_name文件
replace如果指定的文件已經存在,則替換該文件
append將內容附加到一個已經存在的文件中
off停止將sql*plus中的輸出結果復制到file_name文件中,并關閉該文件。
out啟動該功能,將sql*plus中的輸出結構復制到file_name中。
2.spool常用的設置
set colsep' '; //域輸出分隔符
set echo off; //顯示start啟動的腳本中的每個sql命令,缺省為on
set feedback off; //回顯本次sql命令處理的記錄條數,缺省為on
set heading off; //輸出域標題,缺省為on
set pagesize 0; //輸出每頁行數,缺省為24,為了避免分頁,可設定為0
set termout off; //顯示腳本中的命令的執行結果,缺省為on
set trimout on; //去除標準輸出每行的拖尾空格,缺省為off
set trimspool on; //去除重定向(spool)輸出每行的拖尾空格,缺省為off
輸出文本數據的建議格式: SQL*PLUS環境設置
SET NEWPAGE NONE
SET HEADING OFF
SET SPACE 0
SET PAGESIZE 0
SET TRIMOUT ON
SET TRIMSPOOL ON
SET LINESIZE 2500 此值根據具體數據情況設定,太小易被截斷,太大會降低導出的速度。
3、編寫shell腳本生成dat文件。腳本文件為XXBOCQ.prog文件,將其掛一個EBS請求,通過EBS請求來執行其中的內容,主要生成XXBOCQ_BND_BOOK_B.dat文件。
XXBOCQ.prog腳本如下:
LOGIN=${1}
FND=${5}
YJH=${6}
DATE=${7}
echo "login:${LOGIN}"
echo "filename:${FND}"
echo "okname:${YJH}"
echo "date:${DATE}"
export NLS_LANG=American_America.ZHS16GBK
cd /ebsap/appl/outfilep
總結
以上是生活随笔為你收集整理的oracle数据库怎么导出dat文件_论将数据从数据库导出为dat格式.docx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hwclock设置日期_linux中时间
- 下一篇: oracle 主键自增函数_oracle