如题,在线等declare @sql varchar(8000)
set @sql='select ( '
select @sql = @sql +'''' + unit_short_name + ',' +''''
from (select distinct unit_short_name,unit_id from unit_info) as a
set @sql = @sql +') as unit_short_name'exec(@sql)
set @sql='select ( '
select @sql = @sql +'''' + unit_short_name + ',' +''''
from (select distinct unit_short_name,unit_id from unit_info) as a
set @sql = @sql +') as unit_short_name'exec(@sql)
declare
strsql varchar2(4000); --varchar2最大4000
strunit_short_name varchar2(2000);
strunit_id varchar2(500);
begin
strsql := 'select unit_short_name,unit_id from (select distinct unit_short_name,unit_id from unit_info) as a'; --语句自己拼写
execute immediate strsql into strunit_short_name,strunit_id;
...
end;
select @sql = @sql +'''' + unit_short_name + ',' +''''
from (select distinct unit_short_name,unit_id from unit_info) as a这句话是有循环的 如果照你那样拼的话就没循环了
有循环你就改下strsql
strsql := 'select ';
for loop
strsql := strsql || ' unit_short_name ';
...
end loop;
execute immediate strsql into strunit_short_name,strunit_id;
...
execute immediate strsql into strunit_short_name,strunit_id;
至于怎么拼sql 那是逻辑问题啊