Oracle生成指定表的列名,并前后添加select from

表的列名比较多的时候,手工一个个的写列名比较麻烦,这个函数可以让人偷偷懒

create or replace function f_GetCols(p_TableName in varchar2/*获取表中所有列名 前后添加select from*/)  RETURN varchar2
is
Result  varchar2(2000);
v_cnts number;
v_strTabName varchar2(200);
BEGIN
v_strTabName:=upper(p_tablename);
select count(1) into v_cnts from user_tables where table_name=v_strTabName;
if v_cnts>0 then
   Result:='select ';
   for cr in (select column_name from user_tab_columns where table_name=v_strTabName order by column_id)
   loop
     Result:=Result||cr.column_name||',';
   end loop;
   Result:=substr(Result,1,length(Result)-1);
   Result:=Result||' from';
else
   Result:='表不存在';
end if;
return(Result);
END f_GetCols;

使用方法

select f_GetCols(' 表名')from dual;

posted @ 2015-06-30 17:06  Tony(iHqq)  阅读(742)  评论(0编辑  收藏  举报