none
SSIS錯誤訊息,具有無效的有效位數 RRS feed

  • 問題

  • 想請問各位,在使用ssis資料流程來源的OLE DB來源,資料存取模式選擇SQL命令(資料庫是連結ORACLE),SQL語法如下:select sum(amt_d) from uasttm(此語法驗證是沒問題的),接下來設定資料行時會出現下列錯誤訊息
    錯誤位置 資料流程工作 [DTS.Pipeline]: "輸出資料行 "SUM(AMT_D)" (201)" 具有無效的有效位數。有效位數必須介於 1 到 38 之間。
    發生例外狀況於 HRESULT: 0xC0204018 (Microsoft.SqlServer.DTSPipelineWrap)

    敬請各位先進不吝指導~~感謝萬分
    2009年2月21日 上午 01:11

解答

  • Oracle 與 Microsfot SQL 的欄位有效長度不一樣,所以可以嘗試使用 Oracle 的語法先行轉換:
    select CAST(sum(amt_d) as NUMBER(10, 3)) as sum_amt_d from uasttm 

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    2009年2月21日 上午 07:53
    版主

所有回覆

  • Oracle 與 Microsfot SQL 的欄位有效長度不一樣,所以可以嘗試使用 Oracle 的語法先行轉換:
    select CAST(sum(amt_d) as NUMBER(10, 3)) as sum_amt_d from uasttm 

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    2009年2月21日 上午 07:53
    版主
  • 感謝您的回覆,
    但我將你提供的SQL在剖析查詢是OK的,但在使用預覽時則會出現ORA-00905: 遺漏關鍵字 (OraOLEDB)

    再麻煩您給予協助,謝謝
    2009年2月21日 下午 04:06
  • 抱歉了,PL/SQL 不熟 你可能要去翻閱相關的語法 確認 NUMBER CAST 在 Oracle 的實際語法為何
    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    2009年2月23日 上午 09:52
    版主