遷移表與資料量大(數百張表),手工不現實。嘗試免費遷移工具(如 MySQL Migration Tool)發現欄位類型轉換不符要求,資料不完整,不可靠。自寫腳本可隨時調整,更安心。
SELECT table_name FROM user_tables
遍歷所有表進行結構建立與資料遷移。
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE, DATA_DEFAULT
FROM USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER('{$table_name}')
ORDER BY column_id ASC
可得知欄位名稱、類型、長度、是否允許空值、預設值。Oracle 與 MySQL 欄位類型不完全相容,需建立對應關係表:
| Oracle | MySQL |
|---|---|
| number(<11) | int |
| number(>11) | bigint |
| varchar | varchar |
| varchar2(<255) | varchar |
| varchar2(>255) | text |
| clob | text |
| date | date |