質問編集履歴

2

タグの追加

2018/08/10 01:39

投稿

kakizaki
kakizaki

スコア9

test CHANGED
File without changes
test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  IF INSERTING THEN
72
72
 
73
- INSERT INTO TEST_TABLE_B VALUES (PKG_UTL.FNC_GET_NEXTVAL('KANRI_ID',vRET_SQLERR_CD,vRET_SQLERR_MSG), :NEW.FIELD_A, :NEW.FIELD_B);
73
+ INSERT INTO TEST_TABLE_B VALUES (FNC_GET_NEXTVAL('KANRI_ID',vRET_SQLERR_CD,vRET_SQLERR_MSG), :NEW.FIELD_A, :NEW.FIELD_B);
74
74
 
75
75
  END IF;
76
76
 

1

不足情報のCreate TableとCreate Functionを追記

2018/08/10 01:39

投稿

kakizaki
kakizaki

スコア9

test CHANGED
File without changes
test CHANGED
@@ -48,6 +48,8 @@
48
48
 
49
49
  ```PL/SQL
50
50
 
51
+ --トリガー作成
52
+
51
53
  CREATE OR REPLACE TRIGGER TEST_TRIGGER
52
54
 
53
55
  AFTER INSERT OR DELETE OR UPDATE
@@ -76,6 +78,96 @@
76
78
 
77
79
  /
78
80
 
81
+
82
+
83
+ -- 更新元テーブル
84
+
85
+ CREATE TABLE TEST_TABLE_A(
86
+
87
+ KANRI_NO NUMBER,
88
+
89
+ FIELD_A VARCHAR2(10),
90
+
91
+ FIELD_B VARCHAR2(10)
92
+
93
+ );
94
+
95
+
96
+
97
+ -- 更新先テーブル
98
+
99
+ CREATE TABLE TEST_TABLE_B(
100
+
101
+ KANRI_NO NUMBER,
102
+
103
+ FIELD_A VARCHAR2(10),
104
+
105
+ FIELD_B VARCHAR2(10)
106
+
107
+ );
108
+
109
+
110
+
111
+ -- ファンクション作成
112
+
113
+ CREATE OR REPLACE FUNCTION FNC_GET_NEXTVAL (
114
+
115
+ ------------------------------------------------------------
116
+
117
+ -- 次管理番号取得用
118
+
119
+ -- IN : KANRI_ID 管理番号ID
120
+
121
+ -- OUT : RET_SQLERR_CD SQLエラーコード
122
+
123
+ -- RET_SQLERR_MSG SQLエラーメッセージ
124
+
125
+ -- RETURN
126
+
127
+ -- 次管理番号
128
+
129
+ -- ※エラー発生の場合、-1を返す
130
+
131
+ ------------------------------------------------------------
132
+
133
+ KANRI_ID IN VARCHAR2,
134
+
135
+ RET_SQLERR_CD OUT NUMBER,
136
+
137
+ RET_SQLERR_MSG OUT VARCHAR2
138
+
139
+ ) RETURN NUMBER IS
140
+
141
+ v_nextval NUMBER := -1;
142
+
143
+ v_SQL VARCHAR2(200);
144
+
145
+ v_KANRI_ID VARCHAR2(30);
146
+
147
+ BEGIN
148
+
149
+ -- 次管理番号取得処理を実行
150
+
151
+ RETURN v_nextval;
152
+
153
+ EXCEPTION
154
+
155
+ -- エラー発生
156
+
157
+ RET_SQLERR_CD := SQLCODE;
158
+
159
+ RET_SQLERR_MSG := SQLERRM;
160
+
161
+
162
+
163
+ RETURN -1;
164
+
165
+ END;
166
+
167
+ /
168
+
169
+
170
+
79
171
  ```
80
172
 
81
173