能不能实现自动返回sql中所有字段的类型

来源:百度知道 编辑:UC知道 时间:2024/06/02 00:15:44
比方 我给程序 传入一条sql ,select sex ,age from people

程序从数据库查出这些字段的类型,然后告诉我。

sex is varchar(20)
age is number

另外 sql 语句可能会有非常复杂的,比方有nvl(),|| 这些东西

因为返回了结果集
那么这个时候
可以通过一下的代码实现你要的功能
System.out.println("sex is "+rs.getMetaData().getTableName(1));
System.out.println("age is "+rs.getMetaData().getTableName(2));
不好意思
忘记了是从0开始还是从1开始了
最近不怎么用有点记不起来了!

你执行sql查询后返回ResultSet rs
然后:
rs.getMetaData().getColumnType(n)
就得到了第n列的类型。

如果你使用mssqlserver的话, 这好办.
你使用sysobjects(表/存储过程/触发器对象表), syscolumn(表字段/存储过程参数) systypes(字段类型)等系统表,一关联,就能查出来了.

select 列名=A.name, 类型=B.name
from syscolumns A
inner join systypes B on A.xtype=B.xtype
where A.id=(object_id( '表名')) and A.name= '字段名'
懂了没?知道syscolumns和systypes吧

可以实现的,字段名,类型,都可以列出来