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;

时间: 2024-10-09 10:15:50

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

C#获取oracle数据库某表的列名和数据类型【转载】

C#获取oracle数据库某表的列名和数据类型的sql语句为: select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns [where table_name=表名] 关于此sql语句的说明: column_name:某表列名(varchar2(30)); data_type:某表列的数据类型(varchar2(106)); data_length:某表列的长度(number)

【转】MSSQL获取指定表的列名信息,描述,数据类型,长度

/* --作用:根据特定的表名查询出字段,以及描述,数据类型,长度,精度,是否自增,是否为空等信息 --作者:wonder QQ:37036846 QQ群:.NET顶级精英群 ID:124766907 --时间:2011-03-23 11:25 --描述:创建存储过程 --参数:@tableName 表名 */ CREATE PROC sp_GetListsColumnInfoByTableName( @tableName nvarchar(255)) AS BEGIN SELECT CASE

oracle&&Sqlserver获取表名列名主键及数据类型

SQlserver获得列名,列类型,列类型长度,scale,prec等数据类型(syscolumns,systypes,sysobjects均为视图) select a.name as colname, b.name as typename,a.length as length,a.scale as scale,a.prec as prec from syscolumns a,systypes b ,sysobjects c where a.xusertype=b.xusertype and a

oracle数据库高级应用之《自动生成指定表的insert,update,delete语句》

1 /* 2 * 多条记录连接成一条 3 * tableName 表名 4 * type 类型:可以是insert/update/select之一 5 */ 6 create or replace function my_concat(tableName varchar2,type varchar2) 7 return varchar2 8 is 9 type typ_cursor is ref cursor; 10 v_cursor typ_cursor; 11 v_temp varchar2

oracle生成多表触发器sql

--将所有HY开头的表都生成一个更新触发器的脚本('/'是为了连续创建多个触发器而不报错)select 'CREATE OR REPLACE TRIGGER '||table_name||' BEFORE UPDATE on '||table_name||' REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE BEGIN IF updating THEN :NEW.C_UPDATE_TIME:= SYSDATE; IF :NEW.C_DA

sql获取指定表所有列名及注释

SELECT b.name as 字段名 ,Type_name(b.xusertype) as 字段类型, Isnull(c.VALUE,'') as 字段说明FROM sysobjects a join syscolumns b on a.id = b.id JOIN sys.extended_properties c ON b.id = c.major_id AND b.colid = c.minor_id WHERE a.id = Object_id('gbpm.JLFFORM3') --

mysql5.7基础 向指定数据库的指定表中插入符合要求的数据

镇场文:       学儒家经世致用,行佛家普度众生,修道家全生保真,悟易理象数通变.以科技光耀善法,成就一良心博客.______________________________________________________________________________________________________ Operating System:UbuntuKylin 16.04 LTS 64bitmysql: Ver 14.14 Distrib 5.7.17, for Linux (

重建索引到指定表空间

数据存储时,最好是将数据与索引分开存储在不同的表空间中,因为建立索引是要占用硬盘存储空间的,索引表空间和数据表空间建立是一样的 下面语句用于移动索引到指定表空间: alter index ha_wxzj.index_name rebuild tablespace ha_wxzj_index_data; 也可以利用以下语句获得某个schema下移动索引表空间的所有语句:复制代码 代码如下: select 'alter index '||owner||'.'||index_name||' rebui

Oracle生成查询包含指定字段名对应的所有数据表记录语句

应用场合:已知字段名字,查询数据库中所有数据表中包含该字段名的所有数据表 操作办法:指定字段名,数据库表用户,执行下面查询语句即可 --Oracle生成查询包含指定字段名对应的所有数据表记录语句 declare mycolumnname VARCHAR(255):='userid';--定义要查询的字段名变量,运行前修改成您要查询的字段名myownername VARCHAR(255):='system';--定义要查询的数据库用户名变量,运行前修改成您要查询的数据库用户名mystring NV