2016-02-12 162 views
1

我必須使用字符串變量作爲列名如下:字符串變量作爲列名

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

可以先使它看起來像代碼?請格式化它。 – instinct

+0

它不起作用?請提供有關您的問題的更多詳情。 – Chara

+0

EXECUTE IMMEDIATE lv_str中存在一些問題;這個EXECUTE IMMEDIATE lv_str部分不起作用。什麼是正確的語法? –

回答

0

由於lv_emp_row是表修改INSERT如下

INSERT INTO emp SELECT * FROM lv_emp_row;