如果使用SQLServer提供的DTS資料匯入匯出工具,則應注意,Oracle中的表名都是大寫的,而SQLServer預設都是小寫,轉換的時候應該都改成大寫,否則轉出的表名都帶引號
=============以下內容為轉貼==================================================
使用資料轉換服務 (DTS) 轉變或轉換異質資料和目的伺服器之間的資料之前,請考慮不同程式、提供者以及驅動程式支援資料類型和 SQL 陳述式的方式的變化。
當使用 Microsoft SQL Server 作為資料來源時,請考慮下列事項:
將 real 資料類型轉換為 int 資料類型也許不能返回精確的值,因為 SQL Server 2000 只支援精確度為 6 位元字的real 資料類型。例如,real 型數字 2147480000 可能產生 2147480065 的 int 值。
從一個文字檔將 string (DBTYPE_WSTR) 列轉換為 date (DBTYPE_DATE) 或 time (DBTYPE_TIME) 列時,OLE DB 資料轉
換服務元件只接受一種日期或時間格式 (yyyy-mm-dd hh:mm:ss.fffffffff)。使用日期時間字串轉換,或者使用 CDate
函數編碼 Microsoft ActiveX 指令碼轉換正確地轉換日期。
SQL Server 2000 不支援 OLE DB 類型 DBTYPE_DATE 或 DBTYPE_TIME。SQL Server 2000 只支援 DBTYPE_DATETIME。
若要通過多步驟訪問資料,請避免在轉換過程中使用 temp 表。應使用全域 temp 表或在 tempdb 中建立永久表。
從 temp 表返回行的預存程序不能用作轉換源。可以使用預存程序從全域 temp 表或表返回行。
bitsCN.nET*中國網管部落格
在轉換資料任務、資料驅動的查詢任務或 DTS 設計器中的執行 SQL 任務中使用暫存資料表時,請記住:不能使用 Transact-
SQL 陳述式或調用 temp 表的預存程序作為源。
該限制並不應用於 DTS 設計器的外部。可使用通過編程方式訪問 SQL Server temp 表的源語句或預存程序。
DTS 匯入/匯出嚮導和 DTS 設計器
當使用 DTS 匯入匯出嚮導和 DTS 設計器建立包時,請考慮以下事項:
DTS 使用者介面允許共用任務中現有的串連,但是同一個串連不能既用在一個轉換的源中又用在該轉換的目的中。
使用 DTS 設計器或 DTS 匯入/匯出嚮導,有可能為一些只作為資料來源的提供者指定唯讀或正在使用狀態(例如,
Microsoft Access 和 ODBC DSN )。單擊"串連屬性"對話方塊中的"進階"選項卡,然後在"進階串連屬性"對話方塊中,將模式
屬性值設定為 1。
使用 DTS 匯入/匯出嚮導或 DTS 設計器建立表時,在目的地上建立的表的所有者為目前使用者(通常是 dbo),與誰是源表
的所有者無關。這將產生這種情況:dbo 試圖在目的地建立一個表,而該表的名稱已經存在,從而導致嘗試失敗。
[bitsCN.Com]
當使用 DTS 設計器定義資料驅動的查詢時,資料目的地必須能夠支援 OLE DB ICommand 介面。由於這種限制,類似文本
檔案的目的不被支援。
如果 text、ntext 和 image 類型的欄位長度超過 8388602 位元組,則 DTS 的複製 SQL Server 物件任務將截斷超出的部
分。DTS 設計器或 DTS 匯入/匯出嚮導不顯示任何錯誤資訊,而是顯示任務已成功完成。
唯一的失敗指示是一條寫入記錄檔的日誌訊息,此檔案的名稱為 ..log,位於"複製 SQL Server 對
象任務屬性"對話方塊的"複製"選項卡所指定的指令檔目錄中。此日誌訊息詳細說明表和列,但不指出發生截斷的行。無任
何錯誤記錄寫入 DTS 錯誤檔案或 SQL Server 日誌。
Microsoft SNA Server
當使用 Microsoft SNA Server 作為資料來源時,請考慮下列事項:
AS/400 和 VSAM 的 Microsoft OLE DB 提供者不支援 DTS 匯入/匯出嚮導用來建立或截斷表的 SQL 陳述式。
Microsoft Access
使用 Access 時,應考慮下列事項:
當從 SQL Server 2000 中將資料匯出到 Microsoft Access 97 或更早的版本中,Access 的 Microsoft OLE DB 提供者 DL@bitsCN_com網管軟體下載
在記憶體中為所有插入設定緩衝區,並且只在 DTS 匯入/匯出嚮導完成操作時提交它們。結果是,可以在匯出大量表時,面
對記憶體較小的形勢。然而,可以通過構造在多個傳遞中發送較少行數的 SELECT 語句解決該問題。
Microsoft Visual FoxPro
Microsoft Visual FoxPro 只支援 numeric 資料類型的 (15,9) 精度。如果匯出到 Visual FoxPro 的資料超出該精
度,則會被截斷並四捨五入。
Visual FoxPro 不支援 SELECT INTO 語句。
DTS 查詢設計工具支援 Visual FoxPro INSERT VALUE 語句,但不支援使用 SELECT 語句的 INSERT 語句。
ODBC 的 Microsoft OLE DB 驅動程式無法使用 FoxPro ODBC 驅動程式將 BLOB 寫入 Visual FoxPro,因為 Visual
FoxPro 不支援動態資料指標。
ODBC
當串連到 ODBC 資料來源時,請考慮下列事項:
ODBC 的 Microsoft OLE DB 提供者在執行匯出操作時需要一個在帶有 BLOB 資料列的所有目標表上的唯一鍵。
當使用帶有 SQL Server ODBC 驅動程式的 ODBC 的 Microsoft OLE DB 提供者時,在安排帶有源行集中其它資料類型的 [bitsCN.Com]
列之後安排所有 BLOB 列。可以使用 SELECT 語句重新將 BLOB 列安排到源行集的末尾。DTS 匯入/匯出嚮導自動地執行該
操作。
重要 當使用帶有 SQL Server ODBC 驅動程式的 ODBC 的 Microsoft OLE DB 提供者時,請嘗試預覽帶有串連忙錯誤的
預存程序失敗。如果使用 SQL Server 的 Microsoft OLE DB 提供者,該問題就不會發生。
如果一個用於 SQL Server 的 Microsoft ODBC 驅動程式串連由多個線程共用,此串連可能會失敗,並返回錯誤信
息"Connection is busy with results for another hstmt"(此串連正忙於其它 hstmt 的結果)。在某些情況下,這將
影響通過 DTS 匯入/匯出嚮導產生的包。使用以下方法之一解決此問題:
將 MaxConcurrentSteps 屬性設定為1 以消除競爭的線程。
建立其它的 ODBC 串連以消除串連共用。
使用用於 SQL Server 的 Microsoft OLE DB 提供者 (SQLOLEDB) 串連資料庫。如果需要串連 SQL Server 6.5 資料
庫,則運行 Instcatl.sql 以啟用通過用於 SQL Server 的 Microsoft OLE DB 提供者進行訪問。
Oracle
當使用 Oracle 作為資料來源時,請考慮以下事項: 中國_網管聯盟bitsCN.com
用於 Oracle 的 Microsoft ODBC 和 OLEDB 驅動程式支援 Oracle 7.3 BLOB 資料類型,不支援 Oracle 8.0 資料類型。
例如,不支援 BLOB、CLOB、NCLOB 和 BFILE。
用於 Oracle 的 Microsoft OBDC 驅動程式不支援將 Unicode 字串發送到 Oracle 伺服器中。Oracle 要求在 Unicode
字串前加上首碼字母 N。
用於 Oracle 的 Microsoft OBDC 驅動程式不支援 Oracle number 資料類型的負向縮放。
用於 Oracle 的 Microsoft OBDC 驅動程式報告無指定精度的 Oracle number 資料類型的長度為 20 位元字。當從
Oracle (不考慮目的)中匯入時,如果有多於 20 位的數字,並且如果目的表還不存在,可能必須手工地增加精度。
在表中 Oracle 僅支援一個 LONG (BLOB) 資料列。
不能匯入或匯出擁有混合或小寫名稱的 Oracle 列。也不能通過使用 Oracle 列名稱(包含使用 DTS 匯入/匯出嚮導的空
格)來轉換或複製資料。Oracle 要求精確指定並引用區分大小寫列名稱。
若要在 SQL Server 2000 和 Oracle 之間執行分散式交易,必須使用 Oracle 8.0.4.1 版本或更新版本。有關更多資訊,
[bitsCN_com]
請參見分散式交易。
由於用於 Oracle 的 Microsoft OLE DB 提供者不支援 IcommandWithParameters,所以它不能用作資料驅動的查詢任務
的目的地。在 DTS 設計器中使用此提供者時,轉換資料任務、資料驅動的查詢任務以及執行 SQL 任務上的"參數"按鈕
將被禁用。
IBM AS/400 上的 DB2
當串連到 DB2 資料來源時,請考慮以下事項:
在 AS/400 系統上不支援 Unicode 或 BLOB。
在 AS/400 伺服器上不能轉換任何有 NULL 列值的表,因為 AS/400 在其 CREATE TABLE 語句中不支援 NULL 文法。然
而,如果編輯 CREATE TABLE 文法以清除對 NULL 的引用時,則可以發送 NULL 值。AS/400 不支援 NOT NULL;如果沒指
定就假定為 NULL。
使用 Sybase ODBC 驅動程式
當串連到一個 Sybase ODBC 資料來源時,請考慮以下事項:
當使用 DTS 匯入/匯出嚮導將資料從 SQL Server 轉換到 Sybase 11 版本時:
預設情況下,SQL Server numeric (3,0) 資料類型映射為 Sybase smallmoney。為避免資料丟失,請更改此設定。
預設情況下,SQL Server numeric (18,x 或 19,x) 資料類型映射為 Sybase money 資料類型。為避免資料丟失,請更改
bitsCN~com
此設定。
將資料移動到一個新的 Sybase 表時,如果單擊了"列映射和轉換"對話方塊中的"確定"按鈕,嚮導會返回錯誤資訊"表已存
在"。應該忽略此訊息。
不能使用 DTS 匯入/匯出嚮導除去並且重新建立 Sybase 表。必須不使用嚮導來執行此操作。
DTS 查詢設計工具不支援 Sybase SQLAnywhere CREATE TABLE 語句。
由於 SQLAnywhere 驅動程式中的限制,DTS 匯入/匯出嚮導每次只能將一個表移動到 SQLAnywhere 資料庫。可以使用
DTS 設計器來克服此限制。然而,因為 SQLAnywhere 驅動