我必须使用字符串变量作为列名,如下所示:
declare
lv_emp_row emp%rowrtype;
lv_str VARCHAR2(1000);
cursor c1 is select 'ENAME' COLUMN_NAME, 'AAA' COLUMN_VALUE FROM DUAL;
begin
select *
into lv_emp_row
from emp
where empid=101;
lv_emp_row.empid=201;
FOR V_C1 IN C1
LOOP
lv_str := 'lv_emp_row.'||V_C1.COLUMN_NAME || ':= '||V_C1.COLUMN_VALUE;
EXECUTE IMMEDIATE lv_str;
END LOOP;
INSERT INTO emp VALUES lv_emp_row;
end;
/
为什么这不起作用?
答案 0 :(得分:0)
由于lv_emp_row
是表格修改您的INSERT
,如下所示
INSERT INTO emp SELECT * FROM lv_emp_row;