create or replace procedure p_test(v_table in varchar2,v_sql out varchar2)is result varchar2(2000); begin result := 'select * from '||v_table; v_sql := result; end p_test;
如果不返回字符串的话,你也可以用 execute immediate来执行这个动态sql
execute immediate sql into v_c;v_c 是干什么的???--在oracle系统的pl/sql块中,用select的格式是:select ...into 变量 from ... where.. bzszp(www.bzszp.533.net) 兄给出的动态语句中有sql='...' 这是一个字符串,没有into...的结构,所以在执行这句的时候要把执行的结果赋给某一变量. 使用execute immediate sql into v_c就可以. 当然v_c是一个变量,在begin前要定义的.
v_c 是干什么的???
result varchar2(2000);
begin
result := 'select * from '||v_table;
v_sql := result;
end p_test;
execute immediate来执行这个动态sql
bzszp(www.bzszp.533.net) 兄给出的动态语句中有sql='...' 这是一个字符串,没有into...的结构,所以在执行这句的时候要把执行的结果赋给某一变量. 使用execute immediate sql into v_c就可以. 当然v_c是一个变量,在begin前要定义的.