• 締切済み

オラクルのCLOB項目にでかいテキストを登録したい!

CLOBのテーブル項目に10K以上のテキストデータをASPから登録したいのですが 普通にINSERT文で、テキストデータをシングルクォーテーションで囲むとエラーになります。どうしたらいいのでしょうか?

  • campi
  • お礼率12% (1/8)

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

オラクルの問題ではなく、処理言語系の問題ではないでしょうか? 十分な大きさの変数を宣言して、それに代入してみて正常に動きますか? またはいっぺんに代入せずに複数回に分けて連結していく、ではどうでしょう? (「|(パイプ記号)」で連結できたと思います)

関連するQ&A

  • CLOB型へのINSERT

    いつも参考にさせて頂いています。 まず、問題はCLOB型に4000Byte以上のデータを 格納出来なくて困っております。 環境は下記のとおりです。 OS:Windows2003 Oracleバージョン:9.0.1.4.0 テストした手順は (1)テーブル作成 create table TEST_TBL ( id number(9), data clob ); (2)INSERT insert into TEST_TBL values(1,'4000Byte以上のデータ'); ORA-01704: 文字列リテラルが長すぎます CLOBは4Gまで入るはずなのになぜなんでしょうか? ご回答よろしくお願いいたします。

  • OracleのLONG型への insert について

    お世話になります。 ASP + Oracle8.0.5で開発中のシステムがあるのですが、 ASP上のテキストエリアに文章を記述して、OracleのテーブルのLONG型のカラムに対して insertを行うとエラーが起こってしまいます。 正しくは、全角で2000文字までは入力できるのですが、 それを越えてしまうと、ORA-01461エラー(LONG値はLONG列にのみバインドできます)という エラーが起こってしまい、カラムに対してinsertすることができません。 テーブルを見直してみたのですが、ちゃんとLONG型に設定してありました。 LONG型のカラムにデータを登録する際、4000バイト以上の文字列は挿入できないでしょうか? でもLONG型って、2GBまで使用できるはずでしたよね? ご教授のほど、よろしくおねがいします。

  • oracle11gで、PL/SQLにてAというテーブル内の項目にCLO

    oracle11gで、PL/SQLにてAというテーブル内の項目にCLOB型のデータがあります。 そのCLOB型項目を別テーブルの1、2、3のVERCHAR2型にそれぞれ4000バイトずつに 振り分けたいと考えています。 CLOB型ですと、DBMS_LOB.SUBSTRを使用する方法等があると思いますが、バイト数で振り分ける方法なないものでしょうか? 教えて頂きますようお願いします。

  • テキストファイルを作成するとき...

    ASPとVBScriptでテキストファイルを書き出す場合なのですが、ダブルクォーテーションをそのまま書き出す方法を教えて下さい。例えば moji="あいうえお" という文章をそのままテキストファイルに書き出したいのです。( シングルクォーテーションではダメです。) よろしくお願いします。

  • Access VBA HTMLテキストデータをテーブルにINSERTする時

    お世話になっております。 Accessでmdbを作成しています。 内容はHTMLソースをテキストファイルに変換して、そのテキストファイルをmdbでインポートします。 インポートしたHTMLのテキストファイルを1行ずつ読み込んで、別のテーブルにただ単にINSERTしたいのですが・・・。 下記のように1行読み込んだデータがカンマやダブルコーテーションや、シングルコーテーションが混じったデータだった場合、 "<TD class=bottomSeparatorTd noWrap align=left width=16><A class=blackHref onclick="javascript:displayAsTree(this, 'Row1335586');" href="#1">[+]</A> </TD>" VBAのコードでどのようにこのデータを編集してやれば、INSERT可能なデータになるのかよくわかりません。 よろしくお願いいたします。

  • long型へのINSERTについて

    はじめましてアオツキと申します。 わたしはシステム開発を行なっていて、JAVAとOracleを使用しています。 質問させていただきたい内容は、テーブルのLONG型項目にに対してINSERT文を発行したときに起こるエラーを回避する方法です。 insert into testtable (longstr) values ('*' ×10000文字) を発行したところ「ORA-01704: 文字列リテラルが長すぎます 」 というエラーが発生しました。 このエラーを回避するため http://www.shift-the-oracle.com/oerrs/ora-01704.html 上記のURLを参考にし10000文字を分割して insert into testtable (longstr) values (TO_CLOB('*' ×3500文字) || TO_CLOB('*' ×3500文字) || TO_CLOB('*'×2000文字)) と分けてINSERT文を発行したのですが、 「ORA-22835: CLOBからCHAR、またはBLOBからRAWへの変換には、バッファーが小さすぎます(実際: 10503、最大: 4000)」 というエラーが発生しました。 このエラーについて http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19212-01/e19400.htm 上記のURLの原因と処置を呼んだのですが意味が理解できませんでした。 どなたかテーブルに長文を登録する方法をご教授いただけないでしょうか? ご回答お待ちしています。 開発環境 JAVA eclipse SQL実行 eclipseプラグイン DBViewer ORACLE 10g OJDBCドライバ ojdbc14.jar

  • Oracleのシングルクォーテーション

    いつもお世話になっております。 Oracleの「'(シングルクォーテーション)」の使い方について教えてください。 テーブルAのフィールド001には2桁の数値が文字列型として格納されています。 (1)SELECT COUNT(*) FROM テーブルA WHERE フィールド001 = '09' でデータの抽出をしているのですが、データがあるにも係らず、「0」となってしまいます。 (2)SELECT COUNT(*) FROM テーブルA WHERE フィールド001 = 09 では、「09」だけでなく「9」までカウントしてしまいます。 データの中には「09」「9」が混在していて、これらを別々にカウントしたいのですが、(1)では結果を得ることが出来ません。シングルクォーテーションの使い方に間違いがあるのでしょうか? 別々にカウントする方法があればご教授いただけないでしょうか? よろしくお願いします。

  • テキストに’の入っているデータをクエリーで処理したらエラーに..

    テキストからMDBにデータを取込む際に、テキストの項目に、’(シングルフォーテーション)が入ってきて、INSERT文のクエリーで区切りが狂ってしまい、エラーが出てしまいます。 ’(シングルフォーテーション)または ”(ダブルフォーテーション)または ,(カンマ) が入ってきても対応できる良い手段(記述方法)はないでしょうか?

  • シングルクォーテーションとダブルクォーテーション

    いつも楽しく拝見させて頂いています。 初心者ですが宜しくお願いします。 シングルクォーテーションとダブルクォーテーションの使用方法について質問させて頂きます。 select文でテーブル名を指定するときはそのまま(たとえば'名前'じゃなく名前)しないとエラーになります。そういう風なシングルクォーテーション(又はダブルクォーテーション)を使ってはいけないところ、またシングルクォーテーションにしないといけないところ、ダブルクォーテーションにしないといけないところを教えて頂けますでしょうか?もし両方OKならその違い等も教えていただけるとうれしいです。 以上宜しくお願いします。

    • ベストアンサー
    • MySQL
  • Access2010 テキスト型をスペース埋めずに

    Access2010でテキスト型の項目に、テーブルを開いて直セル入力orコピペでデータを入力すると、最大文字長(255文字)まで後ろにスペースが埋められるのですが VBAでADOを使ってデータをINSERTするとスペース埋めされないようです。 これはAccessの仕様ですか? それとも私の勘違いでしょうか。 できればスペース埋めずに登録したいのですが・・・。