File indexing completed on 2023-10-25 09:38:03
0001 DROP TYPE n_tbl;
0002 DROP TYPE n_obj;
0003
0004
0005 CREATE OR REPLACE TYPE n_obj AS OBJECT (
0006 n NUMBER
0007 );
0008 /
0009 show errors;
0010
0011 CREATE OR REPLACE TYPE n_tbl AS TABLE OF n_obj;
0012 /
0013 show errors;
0014
0015 CREATE OR REPLACE FUNCTION
0016 nrows (n IN NUMBER DEFAULT NULL, m IN NUMBER DEFAULT NULL)
0017 return n_tbl
0018 PIPELINED
0019 AS
0020 nrow n_obj := n_obj(0);
0021 BEGIN
0022 FOR i IN nvl(n,1) .. nvl(m,999999999)
0023 LOOP
0024 nrow.n := i;
0025 PIPE ROW(nrow);
0026 END LOOP;
0027 RETURN;
0028 END;
0029 /
0030 show errors;
0031
0032 SELECT n FROM TABLE(nrows(1,5));
0033
0034 CREATE OR REPLACE PROCEDURE streamtest (n_objects IN NUMBER)
0035 AS
0036 last_id NUMBER(10);
0037 n_start NUMBER(10);
0038 n_end NUMBER(10);
0039 BEGIN
0040 dbms_output.put_line('Streamtest adding ' || n_objects || ' objects');
0041 SELECT max(iov_value_id) INTO last_id FROM st_ecalpedestals;
0042
0043 IF last_id IS NULL THEN
0044 last_id := 0;
0045 END IF;
0046
0047 n_start := last_id + 1;
0048 n_end := n_start + n_objects - 1;
0049
0050 dbms_output.put_line('Writing objects ' || n_start || ' through ' || n_end);
0051
0052 INSERT INTO st_ecalpedestals (iov_value_id, time)
0053 SELECT n, n FROM TABLE(nrows(n_start, n_end));
0054
0055 INSERT INTO st_ecalpedestals_item
0056 (iov_value_id, pos, det_id, mean_x1, mean_x12, mean_x6, rms_x1, rms_x12, rms_x6)
0057 SELECT par_key.n, pos_key.n, dbms_random.random(),
0058 dbms_random.value(), dbms_random.value(), dbms_random.value(),
0059 dbms_random.value(), dbms_random.value(), dbms_random.value()
0060 FROM TABLE(nrows(n_start, n_end)) par_key, TABLE(nrows(1, 61200)) pos_key;
0061
0062 COMMIT;
0063 END;
0064 /
0065 show errors;