plsqlで全結果を出力する方法

PL/SQLでは、DBMS_OUTPUT.PUT_LINEファンクションを使って出力をウィンドウに出力できます。全結果をファイルに出力したい場合は、UTL_FILEパッケージの機能を使うことができます。

結果をファイル全体に出力する方法を示すサンプルコードを次に示します。

  1. まず、エクスポートするファイルのパスを指定するためのディレクトリオブジェクトを作成する。例:
CREATE DIRECTORY export_dir AS '/path/to/export';
  1. 次に、クエリを実行し、結果をファイルに書き込む、ストアドプロシージャまたは関数を作りましょう。例:
CREATE OR REPLACE PROCEDURE export_results IS
  -- 定义文件句柄
  file_handle UTL_FILE.FILE_TYPE;
  -- 定义查询结果的变量
  result_var VARCHAR2(255);
  
BEGIN
  -- 打开文件句柄,指定文件名称和访问模式
  file_handle := UTL_FILE.FOPEN('EXPORT_DIR', 'results.txt', 'W');
  
  -- 执行查询,并将结果写入文件
  FOR result IN (SELECT column1, column2 FROM table_name) LOOP
    -- 将结果格式化为字符串
    result_var := result.column1 || ',' || result.column2;
    
    -- 写入文件
    UTL_FILE.PUT_LINE(file_handle, result_var);
  END LOOP;
  
  -- 关闭文件句柄
  UTL_FILE.FCLOSE(file_handle);
  
  -- 提示导出已完成
  DBMS_OUTPUT.PUT_LINE('导出已完成');
END;
/
  1. 最後に、ストアドプロシージャーまたは関数を呼び出して、クエリを実行して結果をエクスポートします。たとえば、
BEGIN
  export_results;
END;
/

実行が完了すると、クエリ結果は指定されたエクスポートファイル(この例ではresults.txt)に保存されます。

bannerAds