質問編集履歴

2

誤字修正

2024/07/02 21:23

投稿

toshi1907
toshi1907

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
+ ```ここに言語を入力
2
+ コード
1
- ### 実現したいこと
3
+ ```### 実現したいこと
2
4
  OracleDB上に格納していBLOBデータのファイル出力のパフォーマンスを上げたいです。
3
5
  ### 前提
4
6
  BLOBデータをファイルで出力すること自体は下記のPL/SQLで実現済みになります。
@@ -11,9 +13,8 @@
11
13
 
12
14
  ### 発生している問題・エラーメッセージ
13
15
  出力自体は出来るが、ループを重ねるごとに書き込み速度が遅くなっていき、最終的に1秒数キロバイトぐらいの速度でファイルの書き込みになる
14
-
15
16
  ### 該当のソースコード
16
- 言語:PL/SQL
17
+ ```言語:PL/SQL
17
18
  DECLARE
18
19
  v_blob BLOB;
19
20
  v_offset INTEGER := 1;
@@ -71,7 +72,6 @@
71
72
  RAISE;
72
73
  END;
73
74
  /
74
- ```
75
75
  ### 試したこと
76
76
 
77
77
  UTL_FILE.FCLOSE(v_filetype);の直後にv_blob の中身を初期化(v_blob :=null)

1

ソースコード不足ヶ所追記

2024/07/02 12:51

投稿

toshi1907
toshi1907

スコア1

test CHANGED
File without changes
test CHANGED
@@ -41,7 +41,8 @@
41
41
  v_openmode,
42
42
  v_file_buffer_size
43
43
  );
44
- v_filename := 'C_CONTROLのselect結果を元に決定'
44
+ v_filename := 'C_CONTROLのselect結果を元に決定';
45
+ v_blob := 'C_CONTROLのselectで抽出したデータを代入';
45
46
  while v_offset < v_totalsize loop
46
47
  if v_offset + v_amount > v_totalsize then
47
48
  v_amount := v_totalsize - v_offset + 1;