存储过程中使用sql拼接执行,执行过程完整代码如下。
实现思路是先把变量和字符串拼接成字符串,再调用execute immediate执行字符串。
--oracle 过程中执行拼接的sql
create or replace function fun_huanglijian(in_id varchar2) return varchar2 is
v_sjkb varchar2(500);
v_sql varchar2(5000);
v_stuname varchar2(5000);
v_stusex varchar2(5000);
begin
select 't_stu' into v_sjkb from dual; --变量赋值
--使用变量代表表明拼接到sql字符串中
v_sql := ' select stuname,stusex from '||v_sjkb||' where stuid = ''1'' ';
execute immediate v_sql into v_stuname,v_stusex; --执行sql
dbms_output.put_line('打印输出'||v_stuname);
dbms_output.put_line('打印输出'||v_stusex);
commit;
return '12';
end;