我在包中導入一些數據從MySQL表導入Oracle表和MS SQL Server表時遇到問題。它從MySQL到SQL Server運行良好,但是當我想要導入到Oracle時出現錯誤。SSIS - 如何轉換Oracle的實際值?
我想導入的表包含數據類型爲DT_R8的屬性(unitPrice)。
用於Oracle的目標數據類型是DT_NUMBERIC,你可以在拍攝看到的。
我添加了一個轉換步驟,以將單價數據從DT_R8轉換爲DT_NUMERIC。
它不工作,我得到以下錯誤。
我發現錯誤的細節:
一種ORA-01722(「無效號碼」)時試圖向一個字符串轉換爲一個數字發生錯誤,並且該字符串不能轉換爲有效的數字。有效的數字包含數字'0'到'9',可能有一個小數點,字符串開頭或結尾的符號(+或 - ),或'E'或'e'(如果它是浮動的科學記數法中的點數)。所有其他角色都被禁止。
但是,我不知道如何解決。
編輯:我添加了一個組件來重定向行/錯誤到一個Excel文件。
下面的屏幕截圖顯示,包括錯誤的過程的結果:
通過瀏覽記錄只有3000行,這似乎過程只接受int值中沒有真正的。所以如果價格等於10,那沒關係,但如果它是10,5,那就失敗了。
任何想法來解決這個問題?
你是否100%正面的MySQL源代碼是乾淨的。什麼是SQL Server數據類型? – Zane
我會將該列轉儲到txt並搜索與目標範圍內的char()代碼不匹配的任何字符代碼。此外,您使用屏幕截圖和錯誤代碼是示例。 –
@Zane我再次檢查,MySQL數據源是乾淨的。值是從0.82到3475,數據類型是雙倍的。關於SQL Server數據類型它是SSIS中輸出的DT_R8,表的列是FLOAT NOT NULL類型。 – K4timini