teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

確認事項の追加

2016/06/30 05:20

投稿

ymrkm
ymrkm

スコア8

title CHANGED
File without changes
body CHANGED
@@ -99,6 +99,51 @@
99
99
  GRANT SELECT ON V_$PARAMETER2 TO SCOTT;もやってみたのですが、同様でした。
100
100
  'dept.txt'が存在している状態で、FOPEN()の引数を'a'->'w'に変更したところ、
101
101
  ORA-06512: "SYS.UTL_FILE", 行41 がなくなったのですが、他はそのままエラーとなっています。
102
+
103
+ ###確認したこと(DIRECTORYオブジェクト)
104
+ (1)UTL_FILE.OPENの第一引数は「DIRECTORYオブジェクト」
105
+ ```
106
+ "select * from all_directories;"より
107
+ OWNER: SYS
108
+ DIRECTORY_NAME: UTL_DATA
109
+ DIRECTORY_PATH: C:\Users\ymrkm\Desktop\SCOTT
110
+ ORIGIN_CON_ID: 0
111
+ ```
112
+
113
+
114
+ (2)UTL_FILE.OPENの第ニ引数は「DIRECTORYオブジェクト」配下となるファイル名
115
+
116
+ ``
117
+ C:\Users\ymrkm\Desktop\SCOTT\dept.txtのdept.txt
118
+ ``
119
+
120
+
121
+ (3)上記DIRECTORYオブジェクトに対してスキーマが読み書きの権限があるか
122
+ ```
123
+ GRANTEE: SCOTT
124
+ OWNER: SYS
125
+ TABLE_NAME: UTL_DATA
126
+ GRANTOR: SYS
127
+ PRIVILEGE: READ
128
+ GRA: NO
129
+ HIE: NO
130
+ COM: NO
131
+ TYPE: DIRECTORY
132
+ ```
133
+ ```
134
+ GRANTEE: SCOTT
135
+ OWNER: SYS
136
+ TABLE_NAME: UTL_DATA
137
+ GRANTOR: SYS
138
+ PRIVILEGE: WRITE
139
+ GRA: NO
140
+ HIE: NO
141
+ COM: NO
142
+ TYPE: DIRECTORY
143
+ ```
144
+
102
145
  ##
146
+
147
+
103
148
  **以上です。**
104
149
  **よろしくお願い致します。**

5

2パターンに変更

2016/06/30 05:20

投稿

ymrkm
ymrkm

スコア8

title CHANGED
File without changes
body CHANGED
@@ -15,36 +15,50 @@
15
15
 
16
16
 
17
17
 
18
- ###発生している問題・エラーメッセージ(現時点)
18
+ ###発生している問題・エラーメッセージ
19
19
  データベースorcl.domainに接続中です。
20
20
  ORA-29283: 無効なファイル操作です。
21
- ORA-06512: "SYS.UTL_FILE", 行512
21
+ ORA-06512: "SYS.UTL_FILE", 行536
22
22
  ORA-29283: 無効なファイル操作です。
23
- ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行10
23
+ ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行9
24
24
  ORA-06512: 行2
25
25
  プロセスが終了しました。
26
- データベースorcl.domainから切断中です。
26
+ データベースorcl.domainから切断中です。
27
27
 
28
28
 
29
- ※最初の"ORA-29283: 無効なファイル操作です。"以下にあった
30
- "ORA-06512: "SYS.UTL_FILE", 行41"は表示されなくなりました
31
-
32
- ###現在ソースコード--未解決
29
+ ###UTL_FILE_DIR使用場合
30
+ ```SQL
33
31
  create or replace
34
- PROCEDURE file_unload_dept
32
+ PROCEDURE UTL_FILE_DIR_WRITE_SAMPLE
35
- IS
33
+ AS
36
34
  file_hand UTL_FILE.FILE_TYPE;
37
- dirname VARCHAR2(250);
35
+ dirname VARCHAR2(250);
38
- name VARCHAR2(250);
36
+ name VARCHAR2(250);
39
37
  BEGIN
40
- name :='dept.txt'; --フォルダ内にあらかじめ作成済み
38
+ name := 'dept.txt';
41
- dirname := 'C:\Users\ymrkm\Desktop\SCOTT'; --utl_file_dirに設定したフォルダ名
39
+ dirname := 'C:\Users\ymrkm\Desktop\SCOTT';
42
- file_hand:=UTL_FILE.FOPEN(dirname,name,'w',32767);
40
+ file_hand := UTL_FILE.FOPEN(dirname ,name,'w', 32767);
43
- UTL_FILE.PUT_LINE(file_hand,'hoge');
41
+ UTL_FILE.PUT_LINE(file_hand, 'hoge');
44
42
  UTL_FILE.FCLOSE(file_hand);
45
43
  END;
44
+ ```
46
45
 
46
+ ```
47
- ###ご相談スコ
47
+ **実行時のエラメッセジ**
48
+ データベースorcl.domainに接続中です。
49
+ ORA-29283: 無効なファイル操作です。
50
+ ORA-06512: "SYS.UTL_FILE", 行536
51
+ ORA-29283: 無効なファイル操作です。
52
+ ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行9
53
+ ORA-06512: 行2
54
+ プロセスが終了しました。
55
+ データベースorcl.domainから切断中です。
56
+ ```
57
+
58
+ ###DIRECTORYオブジェクト使用の場合
59
+
60
+
61
+ ```SQL
48
62
  CREATE OR REPLACE PROCEDURE file_unload_dept
49
63
  IS
50
64
  CURSOR dept_cur IS SELECT dname FROM dept;
@@ -59,8 +73,21 @@
59
73
  END LOOP;
60
74
  UTL_FILE.FCLOSE(file_hand);
61
75
  END;
76
+ ```
62
77
 
78
+ ```
79
+ **実行時のエラーメッセージ**
80
+ データベースorcl.domainに接続中です。
81
+ ORA-29283: 無効なファイル操作です。
82
+ ORA-06512: "SYS.UTL_FILE", 行536
83
+ ORA-29283: 無効なファイル操作です。
84
+ ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行9
85
+ ORA-06512: 行2
86
+ プロセスが終了しました。
87
+ データベースorcl.domainから切断中です。
88
+ ```
63
89
 
90
+
64
91
  ###試したこと
65
92
  ・CREATE DIRECTORY -> SCOTTにディレクトリの権限付与
66
93
  ・SQL*PlusでSCOTTに接続し、SQL*Plusでfile_unload_deptを実行

4

注釈の書き方を変更

2016/06/30 05:09

投稿

ymrkm
ymrkm

スコア8

title CHANGED
File without changes
body CHANGED
@@ -18,7 +18,6 @@
18
18
  ###発生している問題・エラーメッセージ(現時点)
19
19
  データベースorcl.domainに接続中です。
20
20
  ORA-29283: 無効なファイル操作です。
21
- --「ORA-06512: "SYS.UTL_FILE", 行41」はなくなりました
22
21
  ORA-06512: "SYS.UTL_FILE", 行512
23
22
  ORA-29283: 無効なファイル操作です。
24
23
  ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行10
@@ -26,6 +25,10 @@
26
25
  プロセスが終了しました。
27
26
  データベースorcl.domainから切断中です。
28
27
 
28
+
29
+ ※最初の"ORA-29283: 無効なファイル操作です。"以下にあった
30
+ "ORA-06512: "SYS.UTL_FILE", 行41"は表示されなくなりました
31
+
29
32
  ###現在のソースコード--未解決
30
33
  create or replace
31
34
  PROCEDURE file_unload_dept

3

対応による修正点追記

2016/06/30 00:28

投稿

ymrkm
ymrkm

スコア8

title CHANGED
File without changes
body CHANGED
@@ -15,10 +15,10 @@
15
15
 
16
16
 
17
17
 
18
- ###発生している問題・エラーメッセージ
18
+ ###発生している問題・エラーメッセージ(現時点)
19
19
  データベースorcl.domainに接続中です。
20
20
  ORA-29283: 無効なファイル操作です。
21
- ORA-06512: "SYS.UTL_FILE", 行41
21
+ --「ORA-06512: "SYS.UTL_FILE", 行41」はなくなりました
22
22
  ORA-06512: "SYS.UTL_FILE", 行512
23
23
  ORA-29283: 無効なファイル操作です。
24
24
  ORA-06512: "SCOTT.FILE_UNLOAD_DEPT", 行10
@@ -26,7 +26,22 @@
26
26
  プロセスが終了しました。
27
27
  データベースorcl.domainから切断中です。
28
28
 
29
+ ###現在のソースコード--未解決
30
+ create or replace
31
+ PROCEDURE file_unload_dept
32
+ IS
33
+ file_hand UTL_FILE.FILE_TYPE;
34
+ dirname VARCHAR2(250);
35
+ name VARCHAR2(250);
36
+ BEGIN
37
+ name :='dept.txt'; --フォルダ内にあらかじめ作成済み
38
+ dirname := 'C:\Users\ymrkm\Desktop\SCOTT'; --utl_file_dirに設定したフォルダ名
39
+ file_hand:=UTL_FILE.FOPEN(dirname,name,'w',32767);
40
+ UTL_FILE.PUT_LINE(file_hand,'hoge');
41
+ UTL_FILE.FCLOSE(file_hand);
42
+ END;
43
+
29
- ###該当のソースコード
44
+ ###ご相談時点のソースコード
30
45
  CREATE OR REPLACE PROCEDURE file_unload_dept
31
46
  IS
32
47
  CURSOR dept_cur IS SELECT dname FROM dept;
@@ -49,7 +64,7 @@
49
64
  ・システム権限を再度付与(CREATE SESSION,ALTER SESSION,CREATE PROCEDURE,CREATE TRIGGER,CREATE SEQUENCE)
50
65
  ・'dept.txt'をあらかじめ用意してみた
51
66
 
52
- ##(追記)試したこと
67
+ ###(追記)試したこと
53
68
  UTL_FILE_DIRにディレクトリをセットし、
54
69
  GRANT SELECT ON V_$PARAMETER2 TO SCOTT;もやってみたのですが、同様でした。
55
70
  'dept.txt'が存在している状態で、FOPEN()の引数を'a'->'w'に変更したところ、

2

試したことを追記

2016/06/30 00:25

投稿

ymrkm
ymrkm

スコア8

title CHANGED
File without changes
body CHANGED
@@ -49,6 +49,11 @@
49
49
  ・システム権限を再度付与(CREATE SESSION,ALTER SESSION,CREATE PROCEDURE,CREATE TRIGGER,CREATE SEQUENCE)
50
50
  ・'dept.txt'をあらかじめ用意してみた
51
51
 
52
+ ##(追記)試したこと
53
+ UTL_FILE_DIRにディレクトリをセットし、
54
+ GRANT SELECT ON V_$PARAMETER2 TO SCOTT;もやってみたのですが、同様でした。
55
+ 'dept.txt'が存在している状態で、FOPEN()の引数を'a'->'w'に変更したところ、
56
+ ORA-06512: "SYS.UTL_FILE", 行41 がなくなったのですが、他はそのままエラーとなっています。
52
57
  ##
53
58
  **以上です。**
54
59
  **よろしくお願い致します。**

1

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

2016/06/29 09:17

投稿

ymrkm
ymrkm

スコア8

title CHANGED
File without changes
body CHANGED
File without changes