回答編集履歴

1

追記

2017/05/19 00:31

投稿

Orlofsky
Orlofsky

スコア16415

test CHANGED
@@ -7,3 +7,71 @@
7
7
 
8
8
 
9
9
  WITH句が使えなければインラインビューを使う方法もあるのでは?
10
+
11
+
12
+
13
+ 単にPL/SQLの中でWITHの記述方法がわからないだけなら以下のコードを参考に。
14
+
15
+ ```PL/SQL
16
+
17
+ SQL> CREATE OR REPLACE FUNCTION FUNC1
18
+
19
+ 2 RETURN NUMBER
20
+
21
+ 3 IS
22
+
23
+ 4 CURSOR CUR_MON IS
24
+
25
+ 5 WITH MONTH_LIST AS
26
+
27
+ 6 (
28
+
29
+ 7 SELECT 5 AS MONTH FROM DUAL
30
+
31
+ 8 )
32
+
33
+ 9 SELECT ML.MONTH
34
+
35
+ 10 FROM MONTH_LIST ML
36
+
37
+ 11 ORDER BY ML.MONTH ;
38
+
39
+ 12 L_MONTH NUMBER(2) ;
40
+
41
+ 13 BEGIN
42
+
43
+ 14 OPEN CUR_MON ;
44
+
45
+ 15 FETCH CUR_MON INTO L_MONTH ;
46
+
47
+ 16 CLOSE CUR_MON ;
48
+
49
+ 17 RETURN(L_MONTH) ;
50
+
51
+ 18 END FUNC1 ;
52
+
53
+ 19 /
54
+
55
+
56
+
57
+ ファンクションが作成されました。
58
+
59
+
60
+
61
+ SQL> SELECT FUNC1 FROM DUAL ;
62
+
63
+
64
+
65
+ FUNC1
66
+
67
+ -------------
68
+
69
+ 5
70
+
71
+
72
+
73
+ SQL>
74
+
75
+ ```
76
+
77
+