程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> SQLULDR2處理MySQL的空值

SQLULDR2處理MySQL的空值

編輯:MYSQL入門知識
 

要將Oracle數據庫中的大量數據遷移到MySQL中, 用SQLULDR2生成格式化文本文件, 然後用mysqlimport來導入到目標庫, 是一個高效免費的方案. 最近正好有這樣的一個數據遷移需求, 並做了一些測試, 速度很不錯, 但MySQL對於空值(NULL)的處理有些特殊, 在以前的SQLULDR2中, 空值輸出成空的字符串, 如下所示. ICOL$,TABLE,4

 

CON$,TABLE,

UNDO$,TABLE,

C_COBJ#,CLUSTER,

PROXY_ROLE_DATA$,TABLE,

......

用mysqlimport導入數據時, 第三列上的空值(Oracle中)導入到MySQL中時, 就不是空值(NULL)了, 而是長度為0的字符串, 如果導入到數字類型中, 則全變成0, 很顯然這不是我們想要的結果. mysqlimport在默認情況下, 會將\\N處理成NULL值, 因此從Oracle導出成文本時, 需要將空值處理一下, 以方便在MySQL中准確導入.

ICOL$,TABLE,4

 

CON$,TABLE,\\N

UNDO$,TABLE,\\N

C_COBJ#,CLUSTER,\\N

PROXY_ROLE_DATA$,TABLE,\\N

......

在使用SQLULDR2時, 指定NULL命令行選項即可, 如下所示.

SQLULDR2 sys QUERY=tab NULL=\\N

前幾天還在想SQLULDR2都這麼多命令行選項了, 應當齊了吧, 沒想到又多了一個用戶需求導致的命令行選項. 用戶需求真是值得我們好好研究.

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