我已經給出了一個任務,用於創建從表中複製數據的過程,並將複製的數據插入同一個表內並更改列數據之一。例如,我有一個帶有列(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