質問編集履歴

1

package および package body の定義を追加しました。

2019/01/09 09:45

投稿

bkb
bkb

スコア13

test CHANGED
File without changes
test CHANGED
@@ -4,21 +4,109 @@
4
4
 
5
5
 
6
6
 
7
-      __PLS-00201: 識別子xxx.xxxxを宣言してください。__
7
+      __PLS-00201: 識別子xxxx.aaaaを宣言してください。__
8
+
9
+      __PLS-00201: 識別子xxxx.bbbbを宣言してください。__
8
10
 
9
11
 
10
12
 
11
- ※ xxx:パッケージ名, xxxx:ファンクション名 です
13
+ ※ xxxx:パッケージ名, aaaa, bbbb:ファンクション名 です
12
14
 
13
15
 
14
16
 
15
17
  ファンクションはパッケージ化されており、同パッケージ内のプロシージャは実行可能です。
16
18
 
19
+ CREATE PACKAGE と CREATE PACKAGE BODYの定義は下記の通りです。(xxx:スキーマ名です)
20
+
21
+ ```PL/SQL
22
+
23
+ --ファイル1.sql(CREATE PACKAGE)
24
+
25
+ create or replace package xxx.xxxx as
26
+
27
+
28
+
29
+ TYPE TABChar is Table of VARCHAR2(1000) INDEX BY BINARY_INTEGER;
30
+
31
+
32
+
33
+ (略)
34
+
35
+ FUNCTION aaaa(aaa IN VARCHAR2) RETURN TABChar;
36
+
37
+ (略)
38
+
39
+
40
+
41
+ end xxxx;
42
+
43
+ /
44
+
45
+ ```
46
+
47
+ ```PL/SQL
48
+
49
+ --ファイル2.sql(CREATE PACKAGE BODY)
50
+
51
+ create or replace package body xxx.xxxx
52
+
53
+ as
54
+
55
+
56
+
57
+ FUNCTION bbbb(bbb OUT VARCHAR2) RETURN BOOLEAN
58
+
59
+ IS
60
+
61
+  (略)
62
+
63
+ BEGIN
64
+
65
+  (略)
66
+
67
+ EXCEPTION
68
+
69
+  (略)
70
+
71
+ RETURN FALSE;
72
+
73
+ END;
74
+
75
+
76
+
77
+ FUNCTION aaaaa(aaa IN VARCHAR2) RETURN TABChar
78
+
79
+ IS
80
+
81
+  (略)
82
+
83
+ BEGIN
84
+
85
+  (略)
86
+
87
+ RETURN XXXX;
88
+
89
+ EXCEPTION
90
+
91
+  (略)
92
+
93
+ END;
94
+
95
+
96
+
97
+ end xxxx;
98
+
99
+ /
100
+
101
+ SHOW ERROR
102
+
103
+ ```
104
+
17
105
  原因を権限不足と仮定して対処してみましたが、下記の通りの結果です。
18
106
 
19
107
 
20
108
 
21
- - 実行ユーザにファンクション実行権限を付与(grant execute on xxx.xxxx to USER;)
109
+ - 実行ユーザにファンクション実行権限を付与(grant execute on xxxx.aaaa to USER;)
22
110
 
23
111
  →__ORA-04042: プロシージャ、ファンクション、パッケージ、パッケージ本体が存在しません。__
24
112