none
SSISでOracleのNumber型(精度指定なし)のデータ型がDT_WSTR(文字型)として読み込まれる RRS feed

  • 質問

  • Sql Server 2012にてOracle10.2.0.3.0に接続しています。

    接続は、OLEDBプロバイダー:Oracle Provider for OLE DB で行っています。

    たとえば、

    TableA

    (test1 Number

    ,test2 Number(10)

    ,test3 Number(10,1)

    )

    があった場合、OLE DB ソースで接続し、次のコンポーネントにつなげた後

    パスをダブルクリックしてメタデータを確認すると

    test1:DT_WSTR

    test2:DT_NUMERIC

    test3:DT_NUMERIC

    となります。

    test1についても、test2、test3のように数値型として扱ってほしいのですが

    設定などで、数値型として扱うようにできるでしょうか?

    データ変換などにより、数値に変換することは可能ですが

    NUMBERとだけ定義されている列が多く、それぞれ変換するのは手間なので

    一括で数値型として読み込めるような設定ができると助かります。

    よろしくお願いいたします。

    2015年6月3日 9:41

回答

  • こんにちは。

    SSISは使ったことが無いので恐縮なのですが…。

    https://msdn.microsoft.com/ja-jp/library/bb332055%28SQL.90%29.aspx?f=255&MSPPError=-2147217396#connssis_topic4

    上記リンクの「Problems have been reported when using SSIS and the Oracle NUMBER data type.」の部分を見ると、
    OLEDBの場合は手動変換が必要というようなことが書いてあるように読み取れました。

    その上のほうには「MSDAORA以外の場合」と注意書きされてますのでちゃんと変換できる見込みは無いですが、
    MSDAORAで試すだけ試してみるのも良いかもしれません。

    #もう既にご覧になられていたらすみません。

    • 回答の候補に設定 星 睦美 2015年6月18日 4:26
    • 回答としてマーク 星 睦美 2015年6月30日 4:50
    2015年6月3日 11:36
    モデレータ

すべての返信