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

質問編集履歴

2

消す

2020/07/01 05:08

投稿

ad.sys.soleil
ad.sys.soleil

スコア28

title CHANGED
File without changes
body CHANGED
@@ -11,8 +11,6 @@
11
11
  ORA-06572: ファンクションFUNC_TESTに出力引数が指定されています
12
12
  ご存じの方居りましたら宜しくお願い致します。
13
13
 
14
- 成功画面下記。
15
- ![イメージ説明](a04cc4db3c6bb1906b7f05ab0dd80b71.png)
16
14
  エラー履歴下記。
17
15
  SQL> SELECT FUNC_TEST('20200701','0000','9999',:PO_ERR_MSG) FROM DUAL;
18
16
  SELECT FUNC_TEST('20200701','0000','9999',:PO_ERR_MSG) FROM DUAL

1

コメントに従う!

2020/07/01 05:08

投稿

ad.sys.soleil
ad.sys.soleil

スコア28

title CHANGED
File without changes
body CHANGED
@@ -9,6 +9,61 @@
9
9
  SQL> SELECT FUNC_TEST('20200701','0000','9999',:PO_ERR_MSG) FROM DUAL;
10
10
  行1でエラーが発生しました。:
11
11
  ORA-06572: ファンクションFUNC_TESTに出力引数が指定されています
12
+ ご存じの方居りましたら宜しくお願い致します。
12
13
 
13
- 画面下記となりますご存じの方居りましたら宜しくお願い致します。
14
+ 成功画面下記。
14
- ![![イメージ説明](9f489f46d1667f85787f76836132a5ab.png)](a1f2d8146301a1b6348e361c1576f69e.png)
15
+ ![イメージ説明](a04cc4db3c6bb1906b7f05ab0dd80b71.png)
16
+ エラー履歴下記。
17
+ SQL> SELECT FUNC_TEST('20200701','0000','9999',:PO_ERR_MSG) FROM DUAL;
18
+ SELECT FUNC_TEST('20200701','0000','9999',:PO_ERR_MSG) FROM DUAL
19
+ 行1でエラーが発生しました。:
20
+ ORA-06572: ファンクションFUNC_TESTに出力引数が指定されています
21
+ '--------------------------------------------------------------
22
+ Creat Function下記
23
+ ```PL/SQL
24
+ CREATE OR REPLACE FUNCTION ATOMBC.FUNC_TEST
25
+ (
26
+ --パラメタ
27
+ PI_EXECYMD IN VARCHAR2, --実行年月日(YYYYMMDD):任意
28
+ PI_TERMSCD_FROM IN VARCHAR2, --FROM条件コード:任意
29
+ PI_TERMSCD_TO IN VARCHAR2, --TO条件コード:任意
30
+ PO_ERR_MSG OUT VARCHAR2 --エラーメッセージ:異常終了時のORACLEエラー内容
31
+ )
32
+ --戻り値:正常=0/異常終了=-1
33
+ RETURN NUMBER
34
+ IS
35
+ --***************************************************************************
36
+ --** 変数定義
37
+ --***************************************************************************
38
+ W_EXECYMD VARCHAR2(8) := TO_CHAR(SYSDATE,'YYYYMMDD'); --初期値:サーバー日付なYYYYMMDD
39
+ W_TERMSCD_FROM VARCHAR2(5) := '00000'; --初期値:FROM条件「00000」
40
+ W_TERMSCD_TO VARCHAR2(5) := '99999'; --初期値:TO条件「99999」
41
+ BEGIN
42
+ --************************************************************
43
+ --パラメタを変数セット
44
+ IF PI_EXECYMD IS NOT NULL THEN
45
+ W_EXECYMD := PI_EXECYMD;
46
+ END IF;
47
+ IF PI_TERMSCD_FROM IS NOT NULL THEN
48
+ W_TERMSCD_FROM := PI_TERMSCD_FROM;
49
+ END IF;
50
+ IF PI_TERMSCD_TO IS NOT NULL THEN
51
+ W_TERMSCD_TO := PI_TERMSCD_TO;
52
+ END IF;
53
+
54
+ --処理
55
+ PO_ERR_MSG := 'Nomal';
56
+
57
+ --正常戻り値:0
58
+ RETURN 0;
59
+
60
+ EXCEPTION
61
+ --予期せぬエラー
62
+ WHEN OTHERS THEN
63
+ DBMS_OUTPUT.PUT_LINE(SQLCODE || ':' || SQLERRM(SQLCODE));
64
+ PO_ERR_MSG := SQLCODE || ':' || SQLERRM(SQLCODE);
65
+ --異常終了戻り値:-1
66
+ RETURN -1;
67
+ END;
68
+ /
69
+ ```