【发布时间】:2020-10-08 23:56:41
【问题描述】:
我想使用动态过程。 数据将根据我给出的表名从一个表发送到另一个表。 我知道不能这样写。 我该如何克服这个问题?
create or replace PROCEDURE personelleri_getir (table_name_source varchar2,limit_in number,table_name_target varchar2)
IS
CURSOR cur_1 IS
SELECT * FROM table_name_source where rownum<limit_in;
TYPE fetch_1 IS TABLE OF cur_1%ROWTYPE;
v_1 fetch_1;
BEGIN
OPEN cur_1;
LOOP
FETCH cur_1 BULK COLLECT INTO v_1 LIMIT 10000;
FORALL i IN 1..v_1.COUNT
INSERT INTO table_name_target VALUES v_1(i);
EXIT WHEN cur_1%NOTFOUND;
END LOOP;
CLOSE cur_1;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line (SQLERRM);
WHEN OTHERS THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
execute personelleri_getir('cars',100000,'cars2')
【问题讨论】:
标签: oracle plsql oracle11g oracle10g