1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
CREATE OR REPLACE PROCEDURE CREATE_DATA
(
NLINES IN NUMBER
, STARTVAL IN NUMBER
) AS
BEGIN
EXECUTE IMMEDIATE('INSERT INTO T_ABCD(a,b,c,d)
SELECT a,b,c, d FROM (
select i,x,a,b,c, d from (SELECT 1 AS lvl FROM dual)
model
dimension by(lvl)
measures (0 AS i, 0 AS x, 0 as a, 0 AS b, 0 as c, 0 as d)
rules iterate(' || NLINES || ') (
i[iteration_number] = iteration_number+1,
x[0] = ' || STARTVAL || ',
b[iteration_number] = x[iteration_number] * 0.1,
d[iteration_number] = b[iteration_number] / (1- x[iteration_number]),
c[iteration_number] = d[iteration_number] - b[iteration_number],
a[iteration_number] = x[iteration_number] - c[iteration_number],
x[iteration_number+1] = a[iteration_number]
)
)
where i IS NOT null
ORDER BY i');
COMMIT;
END CREATE_DATA; |
Partager