请教一个Oracle SQL语句的问题。问题具体描述如下 20
有两个表:表1的列名不明确,分别为C1,C2,C3,C4。表2两列,一列为index,一列为colname,表2配置了表1中每一列代表什么,现在需要做一个视图,把表1的c...
有两个表:表1的列名不明确,分别为C1,C2,C3,C4。表2两列,一列为index,一列为colname,表2配置了表1中每一列代表什么,现在需要做一个视图,把表1的c1,c2,c3,c4分别替换成表2中配置的列名。
展开
展开全部
用动态语句试一下。
declare
a varchar2(1000);
b varchar2(50);
cursor cur is select colname ||' '||index||',' str from 表2;
begin
a:='';
b:='';
open cur;
loop
fetch str into b;
exit when cur%notfound;
a:=a||b;
end loop;
a:=substr(a,1,length(a)-1);--去掉最后一个逗号
close cur;
execute immediat 'create or replace view view_name as select '||a||' from 表1'
end;
没有测试,大概这样的思路是能实现的。
declare
a varchar2(1000);
b varchar2(50);
cursor cur is select colname ||' '||index||',' str from 表2;
begin
a:='';
b:='';
open cur;
loop
fetch str into b;
exit when cur%notfound;
a:=a||b;
end loop;
a:=substr(a,1,length(a)-1);--去掉最后一个逗号
close cur;
execute immediat 'create or replace view view_name as select '||a||' from 表1'
end;
没有测试,大概这样的思路是能实现的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询