質問編集履歴

6

確認事項の追加

2016/06/30 05:20

投稿

ymrkm
ymrkm

スコア8

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パターンに変更

2016/06/30 05:20

投稿

ymrkm
ymrkm

スコア8

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", 行512
41
+ ORA-06512: "SYS.UTL_FILE", 行536
42
-
42
+
43
- ORA-29283: 無効なファイル操作です。
43
+ ORA-29283: 無効なファイル操作です。
44
-
44
+
45
- ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行10
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
- ※最初の"ORA-29283: 無効なファイル操作です。"以下にあった
111
+ ```
58
-
59
- "ORA-06512: "SYS.UTL_FILE", 行41"は表示されなくなりました
112
+
60
-
61
-
62
-
113
+
114
+
63
- ###現在ソースコード--未解決
115
+ ###DIRECTORYオブジェクト使用場合
64
-
116
+
117
+
118
+
119
+
120
+
65
- create or replace
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
- dirname VARCHAR2(250);
130
+
74
-
75
- name VARCHAR2(250);
131
+ name VARCHAR2(20);
76
132
 
77
133
  BEGIN
78
134
 
135
+ SELECT sysdate INTO day FROM dual;
136
+
79
- name :='dept.txt'; --フォルダ内にあらかじめ作成済み
137
+ name:='dept.txt';
80
-
81
- dirname := 'C:\Users\ymrkm\Desktop\SCOTT'; --utl_file_dirに設定したフォルダ名
138
+
82
-
83
- file_hand:=UTL_FILE.FOPEN(dirname,name,'w',32767);
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,'hoge');
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
- CREATE OR REPLACE PROCEDURE file_unload_dept
158
+
96
-
97
- IS
98
-
99
- CURSOR dept_cur IS SELECT dname FROM dept;
159
+ データベースorcl.domainに接続中です。
160
+
100
-
161
+ ORA-29283: 無効なファイル操作です。
162
+
101
- file_hand UTL_FILE.FILE_TYPE;
163
+ ORA-06512: "SYS.UTL_FILE", 行536
102
-
164
+
103
- name VARCHAR2(20);
165
+ ORA-29283: 無効なファイル操作です。
104
-
105
- BEGIN
166
+
106
-
107
- SELECT sysdate INTO day FROM dual;
167
+ ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行9
168
+
108
-
169
+ ORA-06512: 行2
170
+
171
+ プロセスが終了しました。
172
+
109
- name:='dept.txt';
173
+ データベースorcl.domainから切断中です。
110
-
111
- file_hand:=UTL_FILE.FOPEN('UTL_DATA',name,'a');
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
- END;
175
+ ```
122
176
 
123
177
 
124
178
 

4

注釈の書き方を変更

2016/06/30 05:09

投稿

ymrkm
ymrkm

スコア8

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

対応による修正点追記

2016/06/30 00:28

投稿

ymrkm
ymrkm

スコア8

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

試したことを追記

2016/06/30 00:25

投稿

ymrkm
ymrkm

スコア8

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

初心者マークをつけました

2016/06/29 09:17

投稿

ymrkm
ymrkm

スコア8

test CHANGED
File without changes
test CHANGED
File without changes