col1 number,
col2 number);
begin
insert into tab_test values (1, 1001);
insert into tab_test values (2, 1002);
insert into tab_test values (3, 1003);
insert into tab_test values (4, 1004);
end;
set serveroutput on;
declare
--col_1 varchar2(20);
col_2 varchar2(20);
t_command varchar2(100);
value varchar2(100);
begin
col_2:='COL2';
t_command:='select :1 from tab_test where col1=1'; --不可以
--t_command:='select '||col_2||' from tab_test where col1=1'; --可以 -
execute immediate t_command into value;
dbms_output.put_line(value);
end;
为什么要是动态的字段时必须要用'select '||col_2||' from tab_test where col1=1'
用'select :1 from tab_test where col1=1'绑定的情况就不行
而为什么 'select col2 from tab_test where col1=:1'这样不做字段就行