溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle數(shù)據(jù)庫導入TXT文件方法介紹

發(fā)布時間:2020-09-11 16:22:02 來源:腳本之家 閱讀:383 作者:李曉LOVE向陽 欄目:編程語言

客戶端連接數(shù)據(jù)庫導入

1. 安裝有oracle客戶端,配好監(jiān)聽。

2. 以oracle數(shù)據(jù)庫app用戶的表user_svc_info為例

<span >CREATE TABLE USER_SVC_INFO( 
  PHONE varchar2(20) NOT NULL, 
  SVC_ID varchar2(32) NOT NULL, 
  P_USERNAME varchar2(100) NULL, 
  USER_STATUS number NOT NULL , 
  P_ALIAS varchar2(50) NULL, 
  IMSI varchar2(32) NULL, 
  SVC_UPDATETIME timestamp(3) NULL, 
  SVC_TYPE number NOT NULL, 
  SVC_STATUS number NOT NULL, 
  REC_UPDATETIME varchar2(20) NULL, 
  SVC_IDK varchar2(32) NULL, 
  PROSTART_TIME varchar2(24) NULL, 
  PROEND_TIME varchar2(24) NULL, 
  DOWN_TYPE number NULL );</span> 
<span >在e:\sqlldr下創(chuàng)建一個控制命令的腳本文件,通常以.ctl結(jié)尾,如info.ctl 
腳本內(nèi)容如下: 
load data 
infile 'info.txt' 
append into table user_svc_info 
fields terminated by ',' 
TRAILING NULLCOLS 
(PHONE,SVC_ID,P_USERNAME,USER_STATUS,P_ALIAS,IMSI, 
SVC_UPDATETIME timestamp 'yyyy-mm-dd hh34:mi:ss.ff', 
SVC_TYPE,SVC_STATUS,REC_UPDATETIME,SVC_IDK, 
PROSTART_TIME,PROEND_TIME,DOWN_TYPE)</span> 

解釋說明:

infile 'info.txt' 表示要導入的文本文件名為info.txt

append into table 后接要導入的表名

此處用append表示追加到表中,若用

Insert 表示導入空表,有數(shù)據(jù)則停止;

Replace表示原來表中如果有數(shù)據(jù),則會被刪除(用delete from table語句)

Truncate表示原來表中如果有數(shù)據(jù),則會被清除(用truncate table語句)

fields terminated by ','  數(shù)據(jù)中每行記錄用”,”分隔

TRAILING NULLCOLS    表的字段沒有對應的值時允許為空

括號內(nèi)為表的所有字段,日期格式的字段要進行轉(zhuǎn)換,如上SVC_UPDATETIME若是date類型,則用SVC_UPDATETIME date 'yyyy-mm-dd hh34:mi:ss'

腳本寫好后,腳本與info.txt放在同一個文件夾內(nèi),在cmd下執(zhí)行命令:

E:
cd e:\sqlldr
sqlldr userid=app/app@imusic control=info.ctl

表數(shù)據(jù)導出:在操作系統(tǒng)下創(chuàng)建導出腳本(要賦予此腳本可執(zhí)行權(quán)限):

表數(shù)據(jù)導出腳本:

以app用戶下的user_svc_info為例,若要使如下語句的結(jié)果導出成.txt文件,每個字段的值以”,”分隔:

Select phone,svc_type,svc_udatetime from user_svc_ifno where rownum<100; 
可以oracle用戶登錄系統(tǒng),創(chuàng)建腳本如vim info.sh 
#!/bin/bash 
sqlplus "app/app"<<EOF 
set heading off; 
set echo off; 
set feedback off; 
set verify off; 
set wrap off; 
set pagesize 0; 
set linesize 2500; 
set trimout on; 
set trimspool on; 
spool /usr/local/oracle/user_svc_info_sql.txt; 
select phone||','||svc_type||','||svc_updatetime from user_svc_info where rownum<100; 
set define on; 
set heading on; 
set echo on; 
set feedback on; 
spool off 
quit; 
EOF 

執(zhí)行腳本:

./info.sh


生成的user_svc_info_sql.txt文件則是想導出的數(shù)據(jù)文件。

Set heading  on/off;   讓結(jié)果行的標題顯示/不顯示

set echo on/off;控制是否在執(zhí)行命令時打印出所執(zhí)行的命令,OFF則不打印。

set feedback on/off顯示由腳本返回的記錄數(shù)時,腳本選擇至少n個記錄。 ON或OFF打開或關閉此顯示。

set verify on/off控制是否列出在sql語句或PL/SQL腳本中變量替換的值

set wrap on/off; 控制是否截斷選定行顯示如果當前行太寬長。OFFz則是關閉選定行截斷;既允許選擇的行換行到下一行。

set trimout on/off;確定是否允許在每行末尾顯示空白,OFF允許在每行末尾顯示空白,ON不允許輸出空白。

set trimspool on/off;確定是否允許在每行末尾顯示空格,OFF允許在每行末尾顯示空格,ON不允許輸出空格。

總結(jié)

以上就是本文關于oracle數(shù)據(jù)庫導入TXT文件方法介紹,希望對大家有所幫助。感興趣的朋友可以參閱:Oracle RMAN自動備份控制文件方法介紹 、 oracle 數(shù)據(jù)庫啟動階段分析  、 oracle 虛擬專用數(shù)據(jù)庫詳細介紹 等。感謝大家對本站的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI