CREATE OR REPLACE PROCEDURE test(x IN VARCHAR2, z IN VARCHAR2) IS
TYPE mycur IS REF CURSOR;
cur mycur;
sqls VARCHAR2(4000) := 'SELECT b, MIN(a) a FROM (SELECT regexp_replace(t.record_id, ''[^0-9]'') b,t.record_id a FROM bl_record_sanction_ref t WHERE t.reference_value IN(' || x ||
')) GROUP BY b';
a VARCHAR2(30);
b VARCHAR2(30);
emp bl_record_address%ROWTYPE; --表名字如何引數化?
BEGIN
OPEN cur FOR sqls;
LOOP
FETCH cur
INTO b, a;
EXIT WHEN cur%NOTFOUND;
DECLARE
CURSOR crs2 IS
SELECT * FROM bl_record_address WHERE record_id = a;
emp bl_record_address%ROWTYPE;
BEGIN
FOR y IN crs2
LOOP
emp := y;
emp.id := seq_bl_record_address.nextval; --此處呼叫的序列引數化?
emp.record_id := z || '_' || b;
emp.list_name := z;
INSERT INTO bl_record_address VALUES emp;
END LOOP;
END;
END LOOP;
END test;
uj5u.com熱心網友回復:
type emp1 is table of emp%rowtype; --表名字如何引數化?v_emp1 emp1;
是不是應該這樣的?
uj5u.com熱心網友回復:
您好,是將bl_record_address這個表名進行引數化。uj5u.com熱心網友回復:
你把表改一下不就行了嗎。。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/26400.html
標籤:開發
