程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> SQLServer導出數據到MySQL實例介紹

SQLServer導出數據到MySQL實例介紹

編輯:關於MYSQL數據庫

    1從SQLServer導出數據
    執行BCP:
    bcp "..." queryout "F:test.txt" -c –S1.2.3.4 -Usa -P1111
    命令參數含義:
    (1) 導入。
    這個動作使用in命令完成,後面跟需要導入的文件名。
    (2) 導出。
    這個動作使用out命令完成,後面跟需要導出的文件名。
    (3) 使用SQL語句導出。
    這個動作使用queryout命令完成,它跟out類似,只是數據源不是表或視圖名,而是SQL語句。
    (4) 導出格式文件。
    這個動作使用format命令完成,後而跟格式文件名。
    下面介紹一些常用的選項:
    -f format_file
    format_file表示格式文件名。這個選項依賴於上述的動作,如果使用的是in或out,format_file表示已經存在的格式文件,如果使用的是format則表示是要生成的格式文件。
    -x
    這個選項要和-f format_file配合使用,以便生成xml格式的格式文件。
    -F first_row
    指定從被導出表的哪一行導出,或從被導入文件的哪一行導入。
    -L last_row
    指定被導出表要導到哪一行結束,或從被導入文件導數據時,導到哪一行結束。
    -c
    使用char類型做為存儲類型,沒有前綴且以"/t"做為字段分割符,以"/n"做為行分割符。
    -w
    和-c類似,只是當使用Unicode字符集拷貝數據時使用,且以nchar做為存儲類型。
    -t field_term
    指定字符分割符,默認是"/t"。
    -r row_term
    指定行分割符,默認是"/n"。
    -S server_name[ /instance_name]
    指定要連接的SQL Server服務器的實例,如果未指定此選項,BCP連接本機的SQL Server默認實例。如果要連接某台機器上的默認實例,只需要指定機器名即可。
    -U login_id
    指定連接SQL Sever的用戶名。
    -P password
    指定連接SQL Server的用戶名密碼。
    -T
    指定BCP使用信任連接登錄SQL Server。如果未指定-T,必須指定-U和-P。
    -k
    指定空列使用null值插入,而不是這列的默認值。
    2導入數據到MySQL
    執行Load Data命令:
    load data local infile "F:/test.txt" into table table1character set gbk;
    命令參數含義:
    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, )]
    2.1 Low_priority
    如果你指定關鍵詞low_priority,那麼MySQL將會等到沒有其他人讀這個表的時候,才把插入數據。
    2.2 Local
    如果指定local關鍵詞,則表明從客戶主機讀文件。如果local沒指定,文件必須位於服務器上。
    2.3 Replace & Ignore
    replace 和ignore關鍵詞控制對現有的唯一鍵記錄的重復的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現有行。如果你指定ignore,跳 過有唯一鍵的現有行的重復行的輸入。如果你不指定任何一個選項,當找到重復鍵時,出現一個錯誤,並且文本文件的余下部分被忽略。
    2.4分隔符
    terminated by描述字段的分隔符,默認情況下是tab字符(t)
    enclosed by描述的是字段的括起字符。
    escaped by描述的轉義字符。默認的是反斜槓(backslash:)
    lines 關鍵字指定了每條記錄的分隔符默認為'n'即為換行符
    2.5導入部分列
    load data infile可以按指定的列把文件導入到數據庫中。當我們要把數據的一部分內容導入的時候,,需要加入一些欄目(列/字段/field)到MySQL數據庫中,以適應一些額外的需要。比方說,我們要從Access數據庫升級到MySQL數據庫的時候
    下面的例子顯示了如何向指定的欄目(field)中導入數據:
    load data infile "/home/Ordertxt" into table Orders(Order_Number, Order_Date, Customer_ID);
    2.6相對&絕對路徑
    (1)如果給出一個絕對路徑名,服務器使用該路徑名。
    (2)如果給出一個有一個或多個前置部件的相對路徑名,服務器相對服務器的數據目錄搜索文件。
    (3)如果給出一個沒有前置部件的一個文件名,服務器在當前數據庫的數據庫目錄尋找文件。
    例如: /myfile txt”給出的文件是從服務器的數據目錄讀取,而作為“myfile txt”給出的一個文件是從當前數據庫的數據庫目錄下讀取。
    2.7字符集
    character set gbk指定字符集為gbk,與文件的編碼格式(ANSI)保持一致。否則中文數據導入後可能變為亂碼。
    2.8靈活導入
    可以在導入的同時,插入一些其他列:
    load data local infile "F:/test.txt"into table table1 set pin='zs',create_date=current_timestamp;
    3常見問題
    3.1無法運行Load Data命令
    執行load data localinfile時報錯:
    The used command is not allowed with this MySQL version
    解決方法是:啟動mysql客戶端是加上--local-infile=1參數
    $ mysql --local-infile=1 –uroot –p123 –h 127.0.0.1
    3.2用BCP導出UTF-8格式
    解決方法是加上-C選項:
    $ bcp "query sql…" queryout "F:test.txt" -c -C65001–S1.2.3.4 -Usa -P1111

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved