用作列名的字符串变量

时间:2016-02-12 13:54:24

标签: database

我必须使用字符串变量作为列名,如下所示:

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;
/

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

由于lv_emp_row是表格修改您的INSERT,如下所示

INSERT INTO emp SELECT * FROM  lv_emp_row;