表的列名比较多的时候,手工一个个的写列名比较麻烦,这个函数可以让人偷偷懒
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;