1. ホーム
  2. リナックス

[sqlldr] "データファイルのフィールドが最大長を超えています" 解決策

2022-03-20 07:45:57

ビルドテーブル

    axisY = new QValueAxis();
    axisX= new QDateTimeAxis();
    /*Y*/
    axisY->setLabelFormat

sqlldrの誘導体を使用すると、次のエラーが発生します。

レコード 1: 拒否 - テーブル PC_PLANNAME、列 PLANNAME でエラーが発生しました。



データファイルのフィールドが最大長quotを超えています。

ググってみたら、原因がわかりました。

        テーブルで定義されているPLANNAMEフィールドはVARCHAR(2000)であることが判明しましたが。

        が、コントロールファイル(CTL)のデフォルトはcharになっています。

        そのため、カラムのデータ長が255(char型の長さ)を超えると、エラーになります。

回避策

      CTLファイルの "PLANNAME "を "PLANNAME char(2000)" に変更すると、うまくいきました! varchar型ではなく、char型に注意してください!