A5:SQL Mk-2

開発のこと、日々のこと

number型のインポートエラー

ホーム フォーラム A5:SQL Mk-2掲示板 number型のインポートエラー

  • このトピックには14件の返信、2人の参加者があり、最後ににより11ヶ月、 1週前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全15件中)
  • 投稿者
    投稿
  • #3647 返信
    荒木
    ゲスト

    お世話になります。

    本番環境から一括エクスポートして保守環境に連続インポートするという作業をしようとしたところ、number(13,0)のカラムにおいて格納された整数が9桁だとインポートできますが10桁だと「’XXXXXXXXXX’は整数ではありません」というエラーが出てインポートが止まります。
    ver2.13.3 64bitではエラーは出ずインポートできました。

    最新版ではないので修正済かもしれませんが、修正内容からは読み取れなかったのでご連絡しました。

    環境
    データベース Oracle Database 12c Standard Edition Release 12.1.0.2.0 – 64bit Production
    データベースキャラクタセット JA16SJISTILDE
    各国語キャラクタセット AL16UTF16
    A5:SQL Mk-2 version 2.14.0 rc3 64bit
    OracleInstantClient x64 12.2.0.1.0

    #3656 返信
    松原正和
    キーマスター

    荒木さんこんにちは。
     
    はい、インポート処理を高速化した際にデグレードしてしまっていたようです。次のリリース候補版で修正したいと思いますので少々お待ちください。

    #3670 返信
    荒木
    ゲスト

    2.14.0 rc6 64bitにおいて「複数行インサートを使用する」のチェックを外してインポートしたところ、エラーが出ずインポートできました。ありがとうございました。
    ただ、実は「複数行インサートを使用する」のチェックをつけて2レコード以上同時にインポートしようとすると「The parameter has different data type」というエラーが出てインポートできないというエラーも発生しており、こちらはそのままでした。同じ理由のエラーと思い報告しておりませんでした。申し訳ありませんがこちらも調べていただけないでしょうか。
    最初のエラーのように不具合のあるフィールドが示されておらず、こちらがどういった情報を提示すればよいのかわからなかったので、対象テーブルの情報をお伝えします。
    ・レコード数1395行
    ・各カラムのデータ型
    NUMBER(4, 0)
    NUMBER(1, 0)
    NUMBER(3, 0)
    NUMBER(2, 0)
    NUMBER(3, 0)
    NUMBER(3, 0)
    NUMBER(8, 0)
    NUMBER(2, 0)
    NUMBER(13, 0)
    CHAR(100)
    CHAR(14)
    NUMBER(13, 0)
    NUMBER(13, 0)
    NUMBER(13, 0)
    CHAR(28)
    NUMBER(1, 0)
    CHAR(10)
    CHAR(10)
    CHAR(8)
    CHAR(8)
    CHAR(10)
    CHAR(8)
    CHAR(8)
    NUMBER(3, 0)
    NUMBER(10, 0)

    #3684 返信
    松原正和
    キーマスター

    荒木さんこんにちは。

    特定条件下で小さい桁の数値型が正しくインポートできない不具合があるようでした。Version 2.14.0 rc7で修正してみましたのでお試しいただければと思います。

    #3694 返信
    荒木
    ゲスト

    2.14.0 rc7 64bitで試しましたが、「’XXXXXXXXXX’は整数ではありません」のエラーが発生しました。
    値が2147483647だと正常終了し、2147483648だとエラーが出ます。

    エラー内容をまとめますと
    エラーA「The parameter has different data type」
    エラーB「’XXXXXXXXXX’は整数ではありません」
    としたときに
    rc3 複数行インサート:A、単行インサート:B
    rc6 複数行インサート:A、単行インサート:正常終了
    rc7 複数行インサート:B、単行インサート:B
    という状況です。

    #3723 返信
    松原正和
    キーマスター

    荒木さんこんにちは。
     
    前回の修正に64bit整数を読み込む際の不具合があったので2019/1/14 公開予定のVersion 2.14.0 rc 8 で修正しますのでお試しいただければと思います。

    #3764 返信
    荒木
    ゲスト

    2.14.0 rc8 64bitを試しました。
    上で挙げたテーブルはインポートできるようになりましたが、、別のテーブルで複数行インサートでエラーA、単行インサートで正常終了しました。
    テーブルのカラムは以下のとおりです。
    NUMBER(4, 0)
    NUMBER(1, 0)
    NUMBER(3, 0)
    NUMBER(2, 0)
    NUMBER(3, 0)
    NUMBER(3, 0)
    NUMBER(3, 0)
    CHAR(80) 全角40文字
    CHAR(10) 半角数字10桁
    CHAR(20) 全角10字
    CHAR(10) 半角数字10桁
    CHAR(10) 半角数字10桁
    CHAR(20) 全角10字
    NUMBER(2, 0)
    NUMBER(1, 0)
    NUMBER(12, 0)
    NUMBER(12, 0)
    NUMBER(12, 0)
    NUMBER(2, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(2, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(10, 9)
    NUMBER(12, 0)
    NUMBER(12, 0)
    NUMBER(12, 0)
    NUMBER(12, 0)
    NUMBER(10, 0)
    CHAR(60) 全角30字
    NUMBER(8, 0)
    NUMBER(8, 0)
    NUMBER(4, 0)
    NUMBER(8, 0)
    NUMBER(8, 0)
    CHAR(100) 全角50字
    CHAR(100) 全角50字
    CHAR(100) 全角50字
    CHAR(100) 全角50字
    NUMBER(1, 0)
    NUMBER(1, 0)
    NUMBER(1, 0)
    CHAR(10) 半角10字
    CHAR(10) 半角数字10桁
    CHAR(8) 半角数字8桁
    CHAR(8) 半角数字8桁
    CHAR(10) 半角数字10桁
    CHAR(8) 半角数字8桁
    CHAR(8) 半角数字8桁
    NUMBER(3, 0)
    NUMBER(10, 0)
    (長さセマンティクス:バイト・セマンティクス)

    char型を半角aで埋めたり、number型を1にしたり等試してみましたが、エラーを出さない値を見つけることができませんでした。

    #3778 返信
    松原正和
    キーマスター

    荒木さんこんにちは。
     
    どうも、Oracle(ほかいくつかのデータベースも含むかも?)で桁数の大きな数値型を扱うときの問題の様でした。
     
    どうも、複数行インサートの機能は特定のデータベースの特定のデータ型で不具合を起こしがちなのかもしれないです…。もうちょっと信頼性上げたいですね…。

    #3784 返信
    荒木
    ゲスト

    了解しました。
    単行インサートは使えるようになり十分な速度が出ているので利用には問題ありません。
    ご対応いただきありがとうございます。

    #3812 返信
    荒木
    ゲスト

    2.14.0 rc9 64bitで試したところ、2つ目のテーブルで複数行インサートができるようになりました。
    ありがとうございました。

    #17747 返信
    うちむら
    ゲスト

    Oracleのテーブルで、number(15) のカラムに
    0.5
    をインポートしようとすると、
    「0.5は整数ではありません」
    のエラーになりました。

    複数行インサート のチェックをはずしても同様です。

    カラム定義を number(15.1) にしたら、インポートできました。

    #17748 返信
    うちむら
    ゲスト

    最新バージョンでも同様であることを確認済みです。
    a5m2_2.17.4_x64

    #17880 返信
    松原正和
    キーマスター

    うちむらさんこんにちは。
     
    はい、0.5 は number(15)に入れることはできないので、A5:SQL Mk-2ではエラーとなります。自動的に四捨五入や切り捨ては行いません。これは仕様とさせてください。

    #20919 返信
    Akira.Shibata
    ゲスト

    お世話になります。
    A5-SQL Mk-2 64Bit Portable mode Ver.2.17.0 を利用中です。

    CSVからテーブルにインポートをしていてエラーでインポートが不成功となります。
    1000件単位の複数行インサートでは ”は浮動小数点ではありません のエラーとなります。
    1件単位でインポートすると、SQLSTATE=22001(文字列項目の桁あふれ)のエラーとなります。
    この違いは何でしょうか?

    以上、お手数ですがお知らせ願います。

    #20934 返信
    松原正和
    キーマスター

    Akira.Shibata さんこんにちは。
     
    複数行インサートと1行単位のインサートでは生成するSQLを変えているのですが、これのためにエラーの表示内容が変わっているのだと思います。
     
    実際なぜエラーが起こっているのかについては、RDBMSの種類やサンプルとなるCSVなどあるとありがたいです。

15件の投稿を表示中 - 1 - 15件目 (全15件中)
返信先: number型のインポートエラー
あなたの情報:




コメントは受け付けていません。