文本導入資料庫
1. 如何將文本文檔批量數據導入到資料庫中
只要文件能夠用記事本打開並格式正確,就可以把他認為是文本文件進行處理.
象這種格式的數據沒有什麼太好的辦法,只有從文本文件中逐行讀取解析,當讀到完整的記錄時執行SQL語句插入到資料庫中.
2. 怎樣將txt格式的文件導入到資料庫中
先要將oracle跟sas連接,這個操作,也不好解釋的,在管理工具—>數據源(odbc)—>添加,然後自己設置
在sas中新建邏輯庫ccs,跟oracle先連接好,然後寫入以下代碼:
libname
ccs
oracle
user='esp'
//ccs為邏輯庫名
password='esp'
path='sdbnccs'
//user與password為oracle用戶名和密碼,sdbnccs是資料庫名
libname
source
'e:\sas';
//source
為本地要上傳的文件路徑
data
ccs.table_name;
//要導入oracle中的表名
set
source.file1
source.file2
...;
//要導入的本地sas7bdat文件
run;
我導入了很多個大表,挺方便,主要是之前的,配置連接可能有點困難,不懂可以問我!
3. 怎麼將.txt文件導入到sql資料庫中啊!
使用sql的數據導入導出工具。
在sql中,在需要導入的資料庫上點右鍵選擇「任務」回-「導入數據答」,「下一步」,在數據源下下拉列表中選擇「平面文件源」,點擊文件名後面的「瀏覽」按鈕,選擇需要導入到txt文件,進行配置後「下一步」,在目的數據源中選擇sql數據源,選擇需要導入到表,進行欄位對應關系即可進行導入了。或者先用excel打開txt文件,存成xls格式,在第一步選擇時將「平面文件源」改成「Microsoft excel「也可。如果還有問題可以hi我。
4. txt文本導入資料庫
在企業管理器里,選擇資料庫,然後右鍵->所有任務->導入數據.點下一步,在數據源選擇文本文件方式導入,照提示進行就好了
5. 文本文件導入到資料庫中的幾種方法
大型的資料庫開發中常常遇到數據源是平面文件(如文本文件)的情況,對於這樣的數據源,無法使用資料庫對其數據進行有效的管理,另外也無法使用SQL語句對其進行查詢和操作,所以當務之急就是將這些平面文件導
入到資料庫中,然後就可以對其進行高效的操作了。
下面介紹幾種常見的數據導入的方法,希望能夠給大家啟迪。另外,本文所涉及到的資料庫均為ORACLE資料庫,其實對於其他資料庫而言,方法類似。
一、Sql*:Loader
該方法是Oracle資料庫下數據導入的最重要的方法之一,該工具由Oracle客戶端提供,
其基本工作原理是:首先要針對數據源文件製作一個控制文件,控制文件是用來解釋如何對源文件進行解析,其中需要包含源文件的數據格式、目標資料庫的欄位等信息,一個典型的控制文件為如下形式:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'
TRUNCATE (也可以用append替換TRUNCATE)
INTO TABLE fj_ipa_agentdetail
fields terminated ","
trailing nullcols
( AGENT_NO char,
AGENT_NAME char,
AGENT_ADDRESS char,
AGENT_LINKNUM char,
AGENT_LINKMAN char
)
其中,INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'指明所要導入的源文件,其實源文件也可以直接通過命令行來輸入獲得 ,fj_ipa_agentdetail為目標表的名字,fields terminated ","是指源文件的各個欄位是以逗號分隔,trailing nullcols表示遇到空欄位依然寫入到資料庫表中,最後這5個欄位是目標資料庫表的欄位結構。通過上面這個典型的控制文件的格式分析可知,控制文件需要與源文件的格式信息一致,否則導入數據會出現異常。
除了控制以外,sql*loader的還需要數據文件,即源文件。根據格式的不同,源文件可以分為固定欄位長度和有分隔符這兩大類,這里將分別說明這兩種情況:
固定欄位長度的文本文件
就是每個欄位擁有固定的欄位長度,比如:
602530005922 1012
602538023138 1012
602536920355 1012
602531777166 1012
602533626494 1012
602535700601 1012
有分隔符的文本文件
就是每個欄位都有相同的分隔符分隔,比如:
1001,上海長途電信綜合開發公司,南京東路34號140室
1002,上海樺奇通訊科技有限公司,武寧路19號1902室
1003,上海邦正科技發展有限公司,南京東路61號903室
對於上述兩種文件格式sql*loader均可以做處理,下面就前面那個固定長度的文本來舉例說明:
由於該文本只有兩個欄位,一個為設備號,一個是區局編號,兩者的長度分別為20和5,那麼可以編制控制文件如下:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagent200410.txt'
TRUNCATE
INTO TABLE fj_ipa_agent
( DEVNO POSITION(1:20) CHAR,
BRANCH_NO POSITION(21:25) CHAR
)
其中,'/ora9i/fengjie/agent/data/ipaagent200410.txt'為該文件的完全路徑,POSITION(M:N)表示該欄位是從位置M到位置N。
對於有分隔符的數據文件,前面已經有一個例子,這里就不再贅述了。總之,使用Sql*Loader能夠輕松將數據文件導入到資料庫中,這種方法也是最常用的方法。
二、 使用專業的數據抽取工具
目前在數據倉庫領域中,數據抽取與裝載(ETL)是一重要的技術,這一技術對於一些大的數據文件或者文件數量較多尤其適合。這里簡單介紹目前一款主流的數據抽取工具 ――Informatica。
該工具主要採用圖形界面進行編程,其主要工作流程是:首先將源數據文件的結構(格式)導入為Informatica里,然後根據業務規則對該結構進行一定的轉換(transformation),最終導入到目標表中。
以上過程僅僅只是做了一個從源到目標的映射,數據的實際抽取與裝載需要在工作流(workflow)里進行。
使用專業的數據抽取工具,可以結合業務邏輯對多個源數據進行join,union,insect等操作,適合於大型資料庫和數據倉庫。
三、 使用Access工具導入
可以直接在Access里選擇『打開『文本文件,這樣按照向導來導入一個文本文件到Access資料庫中,然後使用編程的方法將其導入到最終的目標數據 庫中。
這種方法雖然煩瑣,但是其對系統的軟體配置要求相對較低,所以也是有一定的使用范圍
6. 怎麼將一個txt文件中的數據導進sql資料庫
本地可直接使用BULK命令,導入到遠程伺服器可先將文本文檔上傳至伺服器指定目錄,再使用BULK導入資料庫
BULK INSERT以用戶指定的格式復制一個數據文件至資料庫表或視圖中。語法BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' } [ WITH ( [ BATCHSIZE [ = batch_size ] ] [ [ , ] CHECK_CONSTRAINTS ] [ [ , ] CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ] [ [ , ] DATAFILETYPE [ = { 'char' | 'native'| 'widechar' | 'widenative' } ] ] [ [ , ] FIELDTERMINATOR [ = 'field_terminator' ] ] [ [ , ] FIRSTROW [ = first_row ] ] [ [ , ] FIRE_TRIGGERS ] [ [ , ] FORMATFILE = 'format_file_path' ] [ [ , ] KEEPIDENTITY ] [ [ , ] KEEPNULLS ] [ [ , ] KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ] [ [ , ] LASTROW [ = last_row ] ] [ [ , ] MAXERRORS [ = max_errors ] ] [ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] [ [ , ] ROWS_PER_BATCH [ = rows_per_batch ] ] [ [ , ] ROWTERMINATOR [ = 'row_terminator' ] ] [ , [ TABLOCK ] ] ) ] 參數'database_name'是包含指定表或視圖的資料庫的名稱。如果未指定,則系統默認為當前資料庫。'owner'是表或視圖所有者的名稱。當執行大容量復制操作的用戶擁有指定的表或視圖時,owner 是可選項。如果沒有指定 owner 並且執行大容量復制操作的用戶不擁有指定的表或視圖,則 Microsoft® SQL Server? 將返回錯誤信息並取消大容量復制操作。'table_name'是大容量復制數據於其中的表或視圖的名稱。只能使用那些所有的列引用相同基表所在的視圖。有關向視圖中復制數據的限制的更多信息,請參見 INSERT。 'data_file'是數據文件的完整路徑,該數據文件包含要復制到指定表或視圖的數據。BULK INSERT 從磁碟復制數據(包括網路、軟盤、硬碟等)。 data_file 必須從運行 SQL Server 的伺服器指定有效路徑。如果 data_file 是遠程文件,則請指定通用命名規則 (UNC) 名稱。BATCHSIZE [ = batch_size ]指定批處理中的行數。每個批處理作為一個事務復制至伺服器。SQL Server提交或回滾(在失敗時)每個批處理的事務。默認情況下,指定數據文件中的所有數據是一個批處理。CHECK_CONSTRAINTS指定在大容量復制操作中檢查 table_name 的任何約束。默認情況下,將會忽略約束。CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ]指定該數據文件中數據的代碼頁。僅當數據含有字元值大於 127 或小於 32 的 char、varchar 或 text 列時,CODEPAGE 才是適用的。CODEPAGE 值 描述 ACP char、varchar 或 text 數據類型的列從 ANSI/Microsoft Windows® 代碼頁 ISO 1252 轉換為 SQL Server 代碼頁。 OEM(默認值) char、varchar 或 text 數據類型的列被從系統 OEM 代碼頁轉換為 SQL Server 代碼頁。 RAW 並不進行從一個代碼頁到另一個代碼頁的轉換;這是最快的選項。 code_page 特定的代碼頁號碼,例如 850。 DATAFILETYPE [ = {'char' | 'native' | 'widechar' | 'widenative' } ]指定 BULK INSERT 使用指定的默認值執行復制操作。DATAFILETYPE 值 描述 char(默認值) 從含有字元數據的數據文件執行大容量復制操作。 native 使用 native(資料庫)數據類型執行大容量復制操作。要裝載的數據文件由大容量復制數據創建,該復制是用 bcp 實用工具從 SQL Server 進行的。 widechar 從含有 Unicode 字元的數據文件中執行大容量復制操作。 widenative 執行與 native 相同的大容量復制操作,不同之處是 char、varchar 和 text 列在數據文件中存儲為 Unicode。要裝載的數據文件由大容量復制數據創建,該復制是用 bcp 實用工具從 SQL Server 進行的。該選項是對 widechar 選項的一個更高性能的替代,並且它用於使用數據文件從一個運行 SQL Server 的計算機向另一個計算機傳送數據。當傳送含有 ANSI 擴展字元的數據時,使用該選項以便利用 native 模式的性能。 FIELDTERMINATOR [ = 'field_terminator' ]指定用於 char 和 widechar 數據文件的欄位終止符。默認的欄位終止符是 \t(製表符)。FIRSTROW [ = first_row ]指定要復制的第一行的行號。默認值是 1,表示在指定數據文件的第一行。FIRE_TRIGGERS指定目的表中定義的任何插入觸發器將在大容量復制操作過程中執行。如果沒有指定 FIRE_TRIGGERS,將不執行任何插入觸發器。FORMATFILE [ = 'format_file_path' ]指定一個格式文件的完整路徑。格式文件描述了含有存儲響應的數據文件,這些存儲響應是使用 bcp 實用工具在相同的表或視圖中創建的。格式文件應該用於以下情況: 數據文件含有比表或視圖更多或更少的列。列使用不同的順序。列分割符發生變化。數據格式有其它的改變。通常,格式文件通過 bcp 實用工具創建並且根據需要用文本編輯器修改。有關更多信息,請參見 bcp 實用工具。 KEEPIDENTITY指定標識列的值存在於導入文件中。如果沒有指定 KEEPIDENTITY,在導入的數據文件中此列的標識值將被忽略,並且 SQL Server 將根據表創建時指定的種子值和增量值自動賦給一個唯一的值。假如數據文件不含該表或視圖中的標識列,使用一個格式文件來指定在導入數據時,表或視圖中的標識列應被忽略;SQL Server 自動為此列賦予唯一的值。有關詳細信息,請參見 DBCC CHECKIDENT。 KEEPNULLS指定在大容量復制操作中空列應保留一個空值,而不是對插入的列賦予默認值。KILOBYTES_PER_BATCH [ = kilobytes_per_batch ]指定每個批處理中數據的近似千位元組數(KB)。默認情況下,KILOBYTES_PER_BATCH 未知。LASTROW [ = last_row ]指定要復制的最後一行的行號。默認值是 0,表示指定數據文件中的最後一行。MAXERRORS [ = max_errors ]指定在大容量復制操作取消之前可能產生的錯誤的最大數目。不能被大容量復制操作導入的每一行將被忽略並且被計為一次錯誤。如果沒有指定 max_errors,默認值為 0。ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) 指定數據文件中的數據如何排序。如果裝載的數據根據表中的聚集索引進行排序,則可以提高大容量復制操作的性能。如果數據文件基於不同的順序排序,或表中沒有聚集索引,ORDER 子句將被忽略。給出的列名必須是目的表中有效的列。默認情況下,大容量插入操作假設數據文件未排序。n是表示可以指定多列的佔位符。ROWS_PER_BATCH [ = rows_per_batch ]指定每一批處理數據的行數(即 rows_per_bacth)。當沒有指定 BATCHSIZE 時使用,導致整個數據文件作為單個事務發送給伺服器。伺服器根據 rows_per_batch 優化大容量裝載。默認情況下,ROWS_PER_BATCH 未知。ROWTERMINATOR [ = 'row_terminator' ]指定對於 char 和 widechar 數據文件要使用的行終止符。默認值是 \n(換行符)。TABLOCK指定對於大容量復制操作期間獲取一個表級鎖。如果表沒有索引並且指定了 TABLOCK,則該表可以同時由多個客戶端裝載。默認情況下,鎖定行為是由表選項 table lock on bulk load 決定的。只在大容量復制操作期間控制鎖會減少表上的鎖爭奪,極大地提高性能。注釋BULK INSERT 語句能在用戶定義事務中執行。對於一個用 BULK INSERT 語句和 BATCHSIZE 子句將數據裝載到使用多個批處理的表或視圖中的用戶定義事務來說,回滾它將回滾所有發送給 SQL Server 的批處理。許可權只有 sysadmin 和 bulkadmin 固定伺服器角色成員才能執行 BULK INSERT。示例本例從指定的數據文件中導入訂單詳細信息,該文件使用豎杠 (|) 字元作為欄位終止符,使用 |\n 作為行終止符。BULK INSERT Northwind.dbo.[Order Details] FROM 'f:\orders\lineitem.tbl' WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = '|\n' )本例指定 FIRE_TRIGGERS 參數。BULK INSERT Northwind.dbo.[Order Details] FROM 'f:\orders\lineitem.tbl' WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = ':\n', FIRE_TRIGGERS ) =============================================================BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE = batch_size ] --BATCHSIZE指令來設置在單個事務中可以插入到表中的記錄的數量
[ [ , ] CHECK_CONSTRAINTS ] --指定在大容量導入操作期間,必須檢查所有對目標表或視圖的約束。若沒有 CHECK_CONSTRAINTS 選項,則所有 CHECK 和 FOREIGN KEY 約束都將被忽略,並且在此操作之後表的約束將標記為不可信。
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] --指定該數據文件中數據的代碼頁
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] --指定 BULK INSERT 使用指定的數據文件類型值執行導入操作。
[ [ , ] FIELDTERMINATOR = 'field_terminator' ] --標識分隔內容的符號
[ [ , ] FIRSTROW = first_row ] --指定要載入的第一行的行號。默認值是指定數據文件中的第一行
[ [ , ] FIRE_TRIGGERS ] --是否啟動觸發器
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ] --指定導入數據文件中的標識值用於標識列
[ [ , ] KEEPNULLS ] --指定在大容量導入操作期間空列應保留一個空值,而不插入用於列的任何默認值
[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
[ [ , ] LASTROW = last_row ] --指定要載入的最後一行的行號
[ [ , ] MAXERRORS = max_errors ] --指定允許在數據中出現的最多語法錯誤數,超過該數量後將取消大容量導入操作。
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] --指定數據文件中的數據如何排序
[ [ , ] ROWS_PER_BATCH = rows_per_batch ]
[ [ , ] ROWTERMINATOR = 'row_terminator' ] --標識分隔行的符號
[ [ , ] TABLOCK ] --指定為大容量導入操作持續時間獲取一個表級鎖
[ [ , ] ERRORFILE = 'file_name' ] --指定用於收集格式有誤且不能轉換為 OLE DB 行集的行的文件。
)]
下面寫個個簡單的應用例子bulk insert xsxt.dbo.tabletest from 'c:\data.txt'
with(
FIELDTERMINATOR=',',
ROWTERMINATOR='\n'
)
7. 如何把TXT文件數據導入MySQL資料庫
具體操作步驟如下:
1、首先打開Navicat軟體,連接到資料庫進入需要導入的資料庫:
8. 如何把文本文檔導入MYSQL資料庫
方法如下,舉例說明:
1、創建測試表,即為要被導入的表:
createtableperson(
idintnotnullauto_increment,
namevarchar(40)notnull,
cityvarchar(20),
salaryint,
primarykey(id)
)engine=innodbcharset=gb2312;
其中local表示本地。執行後,可以看到NULL數據也被正確地導入。
9. 如何將文本文件導入到Oracle資料庫中
將文本文件導入Oracle中需要用sqlloader的方式。
1、在資料庫中創建相應的表。
如,文本文件內容為:
10. 如何將文本文件中數據導入到SQL表中
1、創建復 load.ctl 文件:
在任意文件夾下制創建load.ctl 文件,用編輯器打開 load.ctl 文件,並寫入以下代碼:
load data
CHARACTERSET UTF8
infile "D:importdatadatafiledata.txt"
append
into table table_name
fields terminated by '|'
trailing nullcols
(
id,
mobile
)
2、運行 load.ctl 文件:打開 cmd ,切換到 load.ctl 文件目錄下,運行以下命令:
sqlldr suncrs/suncrs@ubuat control=load.ctl log=log.log
suncrs為用戶名和密碼,ubuat為資料庫名
(10)文本導入資料庫擴展閱讀:
load.ctl代碼解析:
第二行指定編碼(文本文件編碼)。
第三行指定要導入的文件data.txt的路徑。
第五行指定導入的表(以上l例子表名為:table_name)。
第六行表示欄位分隔符。
最後括弧內填寫欄位(注意順序),欄位名寫目標表的欄位名。