質問編集履歴
6
確認事項の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -200,8 +200,98 @@
|
|
200
200
|
|
201
201
|
ORA-06512: "SYS.UTL_FILE", 行41 がなくなったのですが、他はそのままエラーとなっています。
|
202
202
|
|
203
|
+
|
204
|
+
|
205
|
+
###確認したこと(DIRECTORYオブジェクト)
|
206
|
+
|
207
|
+
(1)UTL_FILE.OPENの第一引数は「DIRECTORYオブジェクト」
|
208
|
+
|
209
|
+
```
|
210
|
+
|
211
|
+
"select * from all_directories;"より
|
212
|
+
|
213
|
+
OWNER: SYS
|
214
|
+
|
215
|
+
DIRECTORY_NAME: UTL_DATA
|
216
|
+
|
217
|
+
DIRECTORY_PATH: C:\Users\ymrkm\Desktop\SCOTT
|
218
|
+
|
219
|
+
ORIGIN_CON_ID: 0
|
220
|
+
|
221
|
+
```
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
(2)UTL_FILE.OPENの第ニ引数は「DIRECTORYオブジェクト」配下となるファイル名
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
``
|
232
|
+
|
233
|
+
C:\Users\ymrkm\Desktop\SCOTT\dept.txtのdept.txt
|
234
|
+
|
235
|
+
``
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
(3)上記DIRECTORYオブジェクトに対してスキーマが読み書きの権限があるか
|
242
|
+
|
243
|
+
```
|
244
|
+
|
245
|
+
GRANTEE: SCOTT
|
246
|
+
|
247
|
+
OWNER: SYS
|
248
|
+
|
249
|
+
TABLE_NAME: UTL_DATA
|
250
|
+
|
251
|
+
GRANTOR: SYS
|
252
|
+
|
253
|
+
PRIVILEGE: READ
|
254
|
+
|
255
|
+
GRA: NO
|
256
|
+
|
257
|
+
HIE: NO
|
258
|
+
|
259
|
+
COM: NO
|
260
|
+
|
261
|
+
TYPE: DIRECTORY
|
262
|
+
|
263
|
+
```
|
264
|
+
|
265
|
+
```
|
266
|
+
|
267
|
+
GRANTEE: SCOTT
|
268
|
+
|
269
|
+
OWNER: SYS
|
270
|
+
|
271
|
+
TABLE_NAME: UTL_DATA
|
272
|
+
|
273
|
+
GRANTOR: SYS
|
274
|
+
|
275
|
+
PRIVILEGE: WRITE
|
276
|
+
|
277
|
+
GRA: NO
|
278
|
+
|
279
|
+
HIE: NO
|
280
|
+
|
281
|
+
COM: NO
|
282
|
+
|
283
|
+
TYPE: DIRECTORY
|
284
|
+
|
285
|
+
```
|
286
|
+
|
287
|
+
|
288
|
+
|
203
289
|
##
|
204
290
|
|
291
|
+
|
292
|
+
|
293
|
+
|
294
|
+
|
205
295
|
**以上です。**
|
206
296
|
|
207
297
|
**よろしくお願い致します。**
|
5
2パターンに変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,93 +32,147 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
###発生している問題・エラーメッセージ
|
35
|
+
###発生している問題・エラーメッセージ
|
36
36
|
|
37
37
|
データベースorcl.domainに接続中です。
|
38
38
|
|
39
39
|
ORA-29283: 無効なファイル操作です。
|
40
40
|
|
41
|
-
ORA-06512: "SYS.UTL_FILE", 行5
|
41
|
+
ORA-06512: "SYS.UTL_FILE", 行536
|
42
|
-
|
42
|
+
|
43
|
-
ORA-29283: 無効なファイル操作です。
|
43
|
+
ORA-29283: 無効なファイル操作です。
|
44
|
-
|
44
|
+
|
45
|
-
ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行
|
45
|
+
ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行9
|
46
46
|
|
47
47
|
ORA-06512: 行2
|
48
48
|
|
49
49
|
プロセスが終了しました。
|
50
50
|
|
51
|
+
データベースorcl.domainから切断中です。。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
###UTL_FILE_DIR使用の場合
|
58
|
+
|
59
|
+
```SQL
|
60
|
+
|
61
|
+
create or replace
|
62
|
+
|
63
|
+
PROCEDURE UTL_FILE_DIR_WRITE_SAMPLE
|
64
|
+
|
65
|
+
AS
|
66
|
+
|
67
|
+
file_hand UTL_FILE.FILE_TYPE;
|
68
|
+
|
69
|
+
dirname VARCHAR2(250);
|
70
|
+
|
71
|
+
name VARCHAR2(250);
|
72
|
+
|
73
|
+
BEGIN
|
74
|
+
|
75
|
+
name := 'dept.txt';
|
76
|
+
|
77
|
+
dirname := 'C:\Users\ymrkm\Desktop\SCOTT';
|
78
|
+
|
79
|
+
file_hand := UTL_FILE.FOPEN(dirname ,name,'w', 32767);
|
80
|
+
|
81
|
+
UTL_FILE.PUT_LINE(file_hand, 'hoge');
|
82
|
+
|
83
|
+
UTL_FILE.FCLOSE(file_hand);
|
84
|
+
|
85
|
+
END;
|
86
|
+
|
87
|
+
```
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
```
|
92
|
+
|
93
|
+
**実行時のエラーメッセージ**
|
94
|
+
|
95
|
+
データベースorcl.domainに接続中です。
|
96
|
+
|
97
|
+
ORA-29283: 無効なファイル操作です。
|
98
|
+
|
99
|
+
ORA-06512: "SYS.UTL_FILE", 行536
|
100
|
+
|
101
|
+
ORA-29283: 無効なファイル操作です。
|
102
|
+
|
103
|
+
ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行9
|
104
|
+
|
105
|
+
ORA-06512: 行2
|
106
|
+
|
107
|
+
プロセスが終了しました。
|
108
|
+
|
51
109
|
データベースorcl.domainから切断中です。
|
52
110
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
111
|
+
```
|
58
|
-
|
59
|
-
|
112
|
+
|
60
|
-
|
61
|
-
|
62
|
-
|
113
|
+
|
114
|
+
|
63
|
-
###
|
115
|
+
###DIRECTORYオブジェクト使用の場合
|
64
|
-
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
65
|
-
|
121
|
+
```SQL
|
66
|
-
|
122
|
+
|
67
|
-
PROCEDURE file_unload_dept
|
123
|
+
CREATE OR REPLACE PROCEDURE file_unload_dept
|
68
124
|
|
69
125
|
IS
|
70
126
|
|
127
|
+
CURSOR dept_cur IS SELECT dname FROM dept;
|
128
|
+
|
71
|
-
file_hand UTL_FILE.FILE_TYPE;
|
129
|
+
file_hand UTL_FILE.FILE_TYPE;
|
72
|
-
|
73
|
-
|
130
|
+
|
74
|
-
|
75
|
-
name VARCHAR2(2
|
131
|
+
name VARCHAR2(20);
|
76
132
|
|
77
133
|
BEGIN
|
78
134
|
|
135
|
+
SELECT sysdate INTO day FROM dual;
|
136
|
+
|
79
|
-
name
|
137
|
+
name:='dept.txt';
|
80
|
-
|
81
|
-
|
138
|
+
|
82
|
-
|
83
|
-
file_hand:=UTL_FILE.FOPEN(
|
139
|
+
file_hand:=UTL_FILE.FOPEN('UTL_DATA',name,'a');
|
140
|
+
|
84
|
-
|
141
|
+
FOR dept_rec IN dept_cur LOOP
|
142
|
+
|
85
|
-
UTL_FILE.PUT_LINE(file_hand,
|
143
|
+
UTL_FILE.PUT_LINE(file_hand,dept_rec.dname);
|
144
|
+
|
145
|
+
END LOOP;
|
86
146
|
|
87
147
|
UTL_FILE.FCLOSE(file_hand);
|
88
148
|
|
89
149
|
END;
|
90
150
|
|
91
|
-
|
151
|
+
```
|
152
|
+
|
153
|
+
|
154
|
+
|
92
|
-
|
155
|
+
```
|
156
|
+
|
93
|
-
|
157
|
+
**実行時のエラーメッセージ**
|
94
|
-
|
95
|
-
|
158
|
+
|
96
|
-
|
97
|
-
IS
|
98
|
-
|
99
|
-
|
159
|
+
データベースorcl.domainに接続中です。
|
160
|
+
|
100
|
-
|
161
|
+
ORA-29283: 無効なファイル操作です。
|
162
|
+
|
101
|
-
|
163
|
+
ORA-06512: "SYS.UTL_FILE", 行536
|
102
|
-
|
164
|
+
|
103
|
-
|
165
|
+
ORA-29283: 無効なファイル操作です。
|
104
|
-
|
105
|
-
|
166
|
+
|
106
|
-
|
107
|
-
|
167
|
+
ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行9
|
168
|
+
|
108
|
-
|
169
|
+
ORA-06512: 行2
|
170
|
+
|
171
|
+
プロセスが終了しました。
|
172
|
+
|
109
|
-
|
173
|
+
データベースorcl.domainから切断中です。
|
110
|
-
|
111
|
-
|
174
|
+
|
112
|
-
|
113
|
-
FOR dept_rec IN dept_cur LOOP
|
114
|
-
|
115
|
-
UTL_FILE.PUT_LINE(file_hand,dept_rec.dname);
|
116
|
-
|
117
|
-
END LOOP;
|
118
|
-
|
119
|
-
UTL_FILE.FCLOSE(file_hand);
|
120
|
-
|
121
|
-
|
175
|
+
```
|
122
176
|
|
123
177
|
|
124
178
|
|
4
注釈の書き方を変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,8 +38,6 @@
|
|
38
38
|
|
39
39
|
ORA-29283: 無効なファイル操作です。
|
40
40
|
|
41
|
-
--「ORA-06512: "SYS.UTL_FILE", 行41」はなくなりました
|
42
|
-
|
43
41
|
ORA-06512: "SYS.UTL_FILE", 行512
|
44
42
|
|
45
43
|
ORA-29283: 無効なファイル操作です。
|
@@ -51,6 +49,14 @@
|
|
51
49
|
プロセスが終了しました。
|
52
50
|
|
53
51
|
データベースorcl.domainから切断中です。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
※最初の"ORA-29283: 無効なファイル操作です。"以下にあった
|
58
|
+
|
59
|
+
"ORA-06512: "SYS.UTL_FILE", 行41"は表示されなくなりました
|
54
60
|
|
55
61
|
|
56
62
|
|
3
対応による修正点追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,13 +32,13 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
###発生している問題・エラーメッセージ
|
35
|
+
###発生している問題・エラーメッセージ(現時点)
|
36
36
|
|
37
37
|
データベースorcl.domainに接続中です。
|
38
38
|
|
39
39
|
ORA-29283: 無効なファイル操作です。
|
40
40
|
|
41
|
-
ORA-06512: "SYS.UTL_FILE", 行41
|
41
|
+
--「ORA-06512: "SYS.UTL_FILE", 行41」はなくなりました
|
42
42
|
|
43
43
|
ORA-06512: "SYS.UTL_FILE", 行512
|
44
44
|
|
@@ -54,7 +54,37 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
+
###現在のソースコード--未解決
|
58
|
+
|
59
|
+
create or replace
|
60
|
+
|
61
|
+
PROCEDURE file_unload_dept
|
62
|
+
|
63
|
+
IS
|
64
|
+
|
65
|
+
file_hand UTL_FILE.FILE_TYPE;
|
66
|
+
|
67
|
+
dirname VARCHAR2(250);
|
68
|
+
|
69
|
+
name VARCHAR2(250);
|
70
|
+
|
71
|
+
BEGIN
|
72
|
+
|
73
|
+
name :='dept.txt'; --フォルダ内にあらかじめ作成済み
|
74
|
+
|
75
|
+
dirname := 'C:\Users\ymrkm\Desktop\SCOTT'; --utl_file_dirに設定したフォルダ名
|
76
|
+
|
77
|
+
file_hand:=UTL_FILE.FOPEN(dirname,name,'w',32767);
|
78
|
+
|
79
|
+
UTL_FILE.PUT_LINE(file_hand,'hoge');
|
80
|
+
|
81
|
+
UTL_FILE.FCLOSE(file_hand);
|
82
|
+
|
83
|
+
END;
|
84
|
+
|
85
|
+
|
86
|
+
|
57
|
-
###
|
87
|
+
###ご相談時点のソースコード
|
58
88
|
|
59
89
|
CREATE OR REPLACE PROCEDURE file_unload_dept
|
60
90
|
|
@@ -100,7 +130,7 @@
|
|
100
130
|
|
101
131
|
|
102
132
|
|
103
|
-
##(追記)試したこと
|
133
|
+
###(追記)試したこと
|
104
134
|
|
105
135
|
UTL_FILE_DIRにディレクトリをセットし、
|
106
136
|
|
2
試したことを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -100,6 +100,16 @@
|
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
+
##(追記)試したこと
|
104
|
+
|
105
|
+
UTL_FILE_DIRにディレクトリをセットし、
|
106
|
+
|
107
|
+
GRANT SELECT ON V_$PARAMETER2 TO SCOTT;もやってみたのですが、同様でした。
|
108
|
+
|
109
|
+
'dept.txt'が存在している状態で、FOPEN()の引数を'a'->'w'に変更したところ、
|
110
|
+
|
111
|
+
ORA-06512: "SYS.UTL_FILE", 行41 がなくなったのですが、他はそのままエラーとなっています。
|
112
|
+
|
103
113
|
##
|
104
114
|
|
105
115
|
**以上です。**
|
1
初心者マークをつけました
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|