0

SQL Server で varchar2(8000) のテキスト フィールドからデータを挿入しようとしています。同様の列を作成しましたが、Oracle db で clob データ型を使用しています。一貫性のないデータ型の問題を解決し、クエリのパフォーマンスを改善するのを手伝ってもらえますか? 複数の行に巨大なテキスト ファイルを挿入するための他の良い方法があれば教えてください。SQL Server と Oracle データベースで同じクエリを実行すると (つまり、TBL_NOTES@PPRLEG から "Note" を選択すると)、結果がすぐに取得されます。データを挿入しようとすると、時間がかかり、終了しません。ここでは、クロブを含む列のみを指定し、残りを処理する必要があります。

CREATE OR REPLACE FUNCTION get_clob_data
(id in TBL_NOTES.id%TYPE,
 REPORT_ID in TBL_NOTES.REPORT_ID%type,
 UNIQUE_ID  in TBL_NOTES.UNIQUE_ID%type,
 USER_ID in TBL_NOTES.USER_ID%type,
 DTS in TBL_NOTES.USERROLE%type,
 USEREIN in TBL_NOTES.USERROLE%type 
  )
 RETURN varchar2
  IS
  l_text varchar2(4000);
  Type t_note_txt IS TABLE OF TBL_NOTES.NOTE%type;
  v_notes t_note_txt;
 BEGIN
 SELECT ltrim(rtrim("NOTE"))NOTE
 bulk collect into v_notes
 FROM TBL_NOTES@PPRLEG;
  for indx in 1..v_notes.count
   loop
    l_text := l_text || ' ' ||v_notes(indx);
  end loop;

RETURN l_text;
END;

/

4

2 に答える 2

0

お返事ありがとうございます。グローバル一時テーブルを作成し、挿入ステートメントを実行すると、次のエラーがスローされます: SQL エラー: ORA-00997: LONG データ型 00997 の不正な使用。 00000 - "LONG データ型の不正な使用"

クエリのパフォーマンスを確認します。

于 2015-09-28T14:39:38.003 に答える