2011-11-16 28 views
2

我已經被賦予了將MS SQL Server中的巨大數據庫轉換爲Oracle的任務。數據庫有超過150個表,包含許多約束,默認值和關係,以及許多存儲過程和觸發器。現在我想知道兩件事:將所有列單元從字節更改爲字符

  1. 這是如何通常完成的?我們是否必須爲每個對象逐個手動執行或者有更好的方法?
  2. Oracle中的字符串列默認以字節爲單位創建。我如何更新所有表中的所有列從字節到字符?

在此先感謝。

回答

1

我使用ADO.NET元數據檢索數據庫結構的自制批處理將MS SQL Server數據庫遷移到Informix。我這樣做是因爲我找不到適合此轉換的工具。對於可以使用exisitng工具遷移的數據庫,我不會建議這種方法。
因此,在遷移到Oracle的情況下,最好使用一些現有的工具是這樣的:

http://www.oracle.com/technetwork/database/migration/sqlserver-095136.html

+0

謝謝身體。你提供的鏈接真的很棒。我正在使用SQL Devloper for Oracle。但我不知道它的遷移能力。現在,我意識到我浪費了很多時間運輸表格。 –

3

爲2:這將更新所有BYTE列CHAR

BEGIN 
    FOR x in (SELECT * FROM user_tab_columns WHERE data_type LIKE 'VARCHAR%' and CHAR_USED = 'B') 
    LOOP 
     DBMS_OUTPUT.PUT_LINE('ALTER TABLE '||x.table_name||' MODIFY '||x.column_name||' '||x.data_type||'('||x.data_length||' CHAR)'); 
    END LOOP; 
END; 
/
相關問題