質問: ### 前提・実現したいこと Oracleデータベース 12cで、LONG型の列にテストデータを仕込みたいです データの内容は可変長CSVデータです ### 発生している問題 データが挿入されず、原因が特定できない ### 試したこと&試したことに対するエラーメッセージ テーブル構成は以下の通りとします SAMPLE_TABLE AAA VARCHAR2(4), BBB VARCHAR2(4), | 列名 | 定義 | | --- | --- | | AAA | VARCHAR2(4) | | BBB | VARCHAR2(4) | | CCC | LONG | **1.SQL PLUS で以下のSQLを実行** INSERT INTO SAMPLE_TABLE VALUES ('aaa','bbb','"111","222","333"...,"999"'); ``` SP2-0027: Input is too long (> 2499 characters) - line ignored ``` **2.SQL PLUS で以下のSQLを実行** INSERT INTO SAMPLE_TABLE VALUES ('aaa','bbb','"111","222",' || '"333"...,"999"'); ``` ERROR at line 1: ORA-01704: string literal too long ``` **3.A5:SQL Mk-2を使用** AAA,BBB,CCCそれぞれエクセルのセルにデータを仕込み、セルごとコピーしてA5:SQL Mk-2 へ貼り付ける 一部データのみ正しく挿入され、その他は下記のエラーが発生 ※エラーが発生するデータは、エラーが発生しなかったデータと比べてサイズが大きいわけではありません ``` ORA-01461: LONG値はLONG列にのみバインドできます。 ``` ### 補足情報 A5:SQL Mk-2のバージョンは2.14.1です データの内容は可変長CSVデータで、データサイズは最大で3900バイトです データベースのキャラクタセットはAL32UTF8です 情報が不足していましたらご指摘いただけますでしょうか どうぞよろしくお願いいたします
回答: LONG列を使用した表を作成しないでください。 と正規マニュアルに書いてあるのにLONG型を使う理由は? VARCHAR2データ型 は初期化パラメータ MAX_STRING_SIZE = EXTENDEDの場合 32767バイトまで扱えます。 MAX_STRING_SIZE