これは私を夢中にしています!シーケンス名でPL/SQLファンクションのパラメータ置換を実行する方法は?
私はPL/SQLファンクションGetNextVal
を呼び出して、変数「ProgCode」(「SLC」など)を渡しています。 この関数は多くの一致する既存のシーケンスの1つを呼び出します。この場合はSLC_seq.NextVal
です。次の呼び出しで別のProgCode
が渡されます(たとえば "KLY")が、この関数は最初のProgCode
シーケンスのnextval
を返しますか? 機能:
CREATE OR REPLACE FUNCTION getNextVal(ProgCode IN VARCHAR2)
RETURN NUMBER
IS next_val NUMBER;
BEGIN
SELECT &ProgCode._seq.NextVal INTO next_val FROM DUAL;
RETURN(next_val);
END;
/
Aクイックルーピングテストスクリプト:
declare
type table_varchars is table of varchar2(4);
var_table_varchar table_varchars;
begin
var_table_varchar := table_varchars('KLY','LGC','NLC','SLC');
for e in 1..var_table_varchar.count loop
for j in 1..10 loop
dbms_output.put_line(var_table_varchar(e) || ': ' ||
getnextval(var_table_varchar(e)));
end loop;
end loop;
end;
/
テスト出力:
KLY: 201
KLY: 202
KLY: 203
KLY: 204
KLY: 205
KLY: 206
KLY: 207
KLY: 208
KLY: 209
KLY: 210
LGC: 211
LGC: 212
LGC: 213
LGC: 214
LGC: 215
LGC: 216
LGC: 217
LGC: 218
LGC: 219
LGC: 220
NLC: 221
NLC: 222
NLC: 223
NLC: 224
NLC: 225
NLC: 226
NLC: 227
NLC: 228
NLC: 229
NLC: 230
SLC: 231
SLC: 232
SLC: 233
SLC: 234
SLC: 235
SLC: 236
SLC: 237
SLC: 238
SLC: 239
SLC: 240
私が間違って何をしているのですか?この機能で&ProgCode
の設定を解除する必要がありますか?
Thxを
ブリリアント!完璧に働いた! Thx @ brenners1302 –