declare
tbl_name varchar2(100) := 'emp';
col_name varchar2(100) := 'ename';
v_sql varchar2(100);
type ename_table_type is table of varchar2(100);
enames ename_table_type;
begin
v_sql := 'select ' || col_name || ' from ' || tbl_name;
execute immediate v_sql bulk collect into enames;
end;如果只有1个值,就不用bulk collect into, 直接用into
tbl_name varchar2(100) := 'emp';
col_name varchar2(100) := 'ename';
v_sql varchar2(100);
type ename_table_type is table of varchar2(100);
enames ename_table_type;
begin
v_sql := 'select ' || col_name || ' from ' || tbl_name;
execute immediate v_sql bulk collect into enames;
end;如果只有1个值,就不用bulk collect into, 直接用into
create or replace procedure pro_exc
(v_name in varchar2)
is
v_sql varchar2(100);
begin
v_sql:='select * from test where name='||v_name;
execute immediate v_sql;
end;