日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysqlOracle导入导出txt格式的数据

發布時間:2024/3/7 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysqlOracle导入导出txt格式的数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
 一: mysql導入數據load data infile用法
導出一張表的數據,以',' 為分隔符 select * from pet ?into? outfile 'c:/pet.txt' ??fields terminated by ','?lines terminated by '\r\n'; select * from pet ?into? outfile 'c:/pet1.txt' ??fields terminated by ','??enclosed by '"'?lines terminated by '\r\n';
enclosed by '"' : 數據導出都是帶 引號的?"Fluffy","Harold","cat","f","1993-02-04"
導入一張表的數據,以',' 為分隔符 load data local infile 'c:/pet.txt' into table pet ?fields terminated by ',' ?lines terminated by '\r\n'
load data local infile 'c:/pet.txt' into table pet??fields terminated by ','??lines terminated by '\r\n'?(name,owner,species,sex,birth,death)?;
load data local infile 'c:/pet1.txt' into table pet ?fields terminated by ','?enclosed by '"'??lines terminated by '\r\n'; ?enclosed by'"' 導入帶引號?"Fluffy","Harold","cat","f","1993-02-04" 格式的數據
?注意: ()括號里面的字段可以控制導入的列數量
? 基本語法: load data [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]
[lines terminated by'n']
[ignore number lines]
[(col_name, )]
? 1 如果你指定關鍵詞low_priority,那么MySQL將會等到沒有其他人讀這個表的時候,才把插入數據。可以使用如下的命令: load data low_priority infile "/home/mark/data sql" into table Orders;
2 如果指定local關鍵詞,則表明從客戶主機讀文件。如果local沒指定,文件必須位于服務器上。
3 replace和ignore關鍵詞控制對現有的唯一鍵記錄的重復的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現有行。如果你指定ignore,跳過有唯一鍵的現有行的重復行的輸入。如果你不指定任何一個選項,當找到重復鍵時,出現一個錯誤,并且文本文件的余下部分被忽略。例如:
load data low_priority infile "/home/mark/data sql" replace into table Orders;

4分隔符
terminated by分隔符:意思是以什么字符作為分隔符
enclosed by字段括起字符
escaped by轉義字符
terminated by描述字段的分隔符,默認情況下是tab字符(\t)
enclosed by描述的是字段的括起字符。
escaped by描述的轉義字符。默認的是反斜杠(backslash:\ )

5.字符集
character set gbk;

這個字符集一定要寫,要不然就會亂碼或者只導入一部分數據。
load data local infile 'c:/pet1.txt' into table ?character set gbk?pet ?fields terminated by ','?enclosed by '"'??lines terminated by '\r\n';
二:Oracle導入數據load data infile用法
1. 輸出txt格式的腳本
set trimspool on
set linesize 40000
set pagesize 0
set newpage none --會在頁和頁面之間沒有任何間隔
set heading off?? --是否顯示列標題
set term off? --輸出的文件不會顯示在屏幕上,可以提高spool的速度
set feedback off? --是否顯示當前sql語句查詢或修改的行數
set trims on? --將spool輸出中每行后面多余的空格去掉
spool c:/s24_tbl_acct.txt

select
XACCOUNT??????? ||'|'|| BANK ? ? ? ? ?? ||'|'|| BUSINESS ? ? ?? ||'|'|| CATEGORY??????? ||'|'||
NCRED_RSN???

from tbl_acct_201212;
spool off;
exit ;
?? ----------------------------------------------------------------------------------------------
Oracle通過sqlplus spool導出數據

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
注:LINESIZE要稍微設置大些,免得數據被截斷, 它應和相應的TRIMSPOOL結合使用防止導出的文本有太多的尾部空格。但是如果 LINESIZE設置太大,會大大降低導出的速度 。
SQL>set colsep' ';???? //-域輸出分隔符

SQL>set newp none??????????? //設置查詢出來的數據分多少頁顯示,如果需要連續的數據,中間不要出現空行就把newp設置為none,這樣輸出的數據行都是連續的,中間沒有空行之類的

SQL>set echo off;???? //顯示start啟動的腳本中的每個sql命令,缺省為on

SQL> set echo on?????????????? //設置運行命令是是否顯示語句

SQL> set feedback on;?????? //設置顯示“已選擇XX行”

SQL>set feedback off;????? //回顯本次sql命令處理的記錄條數,缺省為on即去掉最后的 "已經選擇10000行"

SQL>set heading off;???? //輸出域標題,缺省為on 設置為off就去掉了select結果的字段名,只顯示數據

SQL>set pagesize 0;????? //輸出每頁行數,缺省為24,為了避免分頁,可設定為0。

SQL>set linesize 80;????? //輸出一行字符個數,缺省為80

SQL>set numwidth 12;???? //輸出number類型域長度,缺省為10

SQL>set termout off;???? //顯示腳本中的命令的執行結果,缺省為on

SQL>set trimout on;?? //去除標準輸出每行的拖尾空格,缺省為off

SQL>set trimspool on;? //去除重定向(spool)輸出每行的拖尾空格,缺省為off

SQL>set serveroutput on;? //設置允許顯示輸出類似dbms_output

SQL> set timing on;????????? //設置顯示“已用時間:XXXX”

SQL> set autotrace on-;??? //設置允許對執行的sql進行分析

set verify off???????????????????? //可以關閉和打開提示確認信息old 1和new 1的顯示.?


ksh腳本處理:



Ruby代碼?
#!/bin/ksh??
DB_USER=scott ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #DB USER??
DB_PWD=tiger ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#DB PASSWORD??
DB_SERV=orcl??????????????????????????????? #DB SERVICE NAME??
returnMessage=`sqlplus -s $DB_USER/$DB_PWD@$DB_SERV<<EOF??
whenever sqlerror exit 1??
whenever oserror exit 2??
set pagesize 0 feedback off verify off heading off??
set time off echo off??
set pagesize 0??
set linesize 2000??
set trims on??
set feedback off??
set TERMOUT OFF??
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';??
spool sp_test.txt??
select PK_ID || '|' ||GRID_ID || '...' from tmp_jy_sys_table_col;??
spool off??
/??
exit 3;??
EOF`?

#!/bin/ksh
DB_USER=tivan?????????????????????????????? #DB USER
DB_PWD=tivan?????????????????????????????? #DB PASSWORD
DB_SERV=orcl??????????????????????????????? #DB SERVICE NAME
returnMessage=`sqlplus -s $DB_USER/$DB_PWD@$DB_SERV<<EOF
whenever sqlerror exit 1
whenever oserror exit 2
set pagesize 0 feedback off verify off heading off
set time off echo off
set pagesize 0
set linesize 2000
set trims on
set feedback off
set TERMOUT OFF
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
spool sp_test.txt
select PK_ID || '|' ||GRID_ID || '...' from tmp_jy_sys_table_col;
spool off
/
exit 3;
EOF`

-EOF-


2. 導入txt格式的腳本
1.建一個ctl文件內容如下
load data
infile 'C:\Users\Administrator\Desktop\exp\gsyh.txt'
append into table JCPT_CompanyAnnouncement
fields terminated by '&&&' optionally enclosed by '\n'
trailing nullcols(
ID "SEQ_TEST.NEXTVAL" , --主鍵自動增長列
COMPANYID,
ANNOUNCEMENTDATE date"yyyy-mm-dd",
TITLE,
ABSTRACT,
THEME,
PUBLISHTIME? ???? date"yyyy-mm-dd hh24:mi:ss",
ENDATE,
BODY,
FILEURL,
FILEMD5
)?

2.建一個 bat 文件,linux 用sh文件 內容如下
sqlldr userid=developer/developer_ora__123_456@BankAssist control=C:\Users\Administrator\Desktop\exp\control.ctl log=C:\Users\Administrator\Desktop\exp\gdyh.log
3.這個目錄下弄個數據文件C:\Users\Administrator\Desktop\exp\gsyh.txt  

總結

以上是生活随笔為你收集整理的mysqlOracle导入导出txt格式的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。