我已经给出了一个任务,用于创建从表中复制数据的过程,并将复制的数据插入同一个表内并更改列数据之一。例如,我有一个带有列(ID,C1,C2 .... C20)的表格,“ID”列中的数据具有相同的值,我想在复制后更改为另一个值。 我试图用光标和记录,因为它会返回大量的数据和下面是我的程序代码:Oracle:由于立即执行命令而未实现的错误
create or replace procedure copy_data(tab_name varchar2 ,column_to_change varchar2, change_value varchar2, rowcount number)
is
stmt varchar2(100);
stmt2 varchar2(100);
type test_cursor is REF CURSOR ;
cur_cv test_cursor;
v_test_rec job%rowtype;
begin
stmt := 'v_test_rec.'||column_to_change;
stmt2 := 'insert into ' || tab_name || ' values v_test_rec ';
open cur_cv for 'select * from ' || tab_name;
loop
fetch cur_cv into v_test_rec;
stmt := change_value;
execute immediate (stmt2);
exit when cur_cv%rowcount > (rowcount - 1);
end loop;
close cur_cv;
end;
/
TAB_NAME是从复制的数据表,column_to_change是,我想改变数据的列在里面,change_value是我想要从column_to_change改变的值,rowcount是列的总数。
当我编译它,它是成功的,但是当我执行它:
execute copy_data ('job', 'ccn_cd', 'ITUE02', 112);
我有错误,错误如下:
ORA-03001:
ORA-06512: "HR.COPY_DATA", 行16
ORA-06512: 行1
03001. 00000 - "unimplemented feature"
*Cause: This feature is not implemented.
*Action: None.
我想了解哪一部分我的代码是错误的,但仍然无法弄清楚。我很抱歉我的英文不太好。任何人都可以给我一些提示或解决我的问题吗? 谢谢。
选中此项:http://www.orafaq.com/forum/t/137567/ - 也可能是您的问题。 – Aganju