请教各位一个多表查询的问题,望指点迷津!!

lavee 2007-08-13 12:31:03
我现在做的项目中需要用一个SQL语句(select。。from。。。) 查询出一个表中所有列的基本信息,具体包括:1.字段名 2.字段类型 3.是否可空 4.是否为主键。
前3个信息我都可以从 user_tab_columns 中读出来,但是“是否主键”就不好办了,比如说某个列不是主键,我象这样从user_tab_columns,user_constraints ,user_cons_columns 三个表中查询我需要的信息:

“select a.COLUMN_NAME as 字段名,a.DATA_TYPE as 字段类型,a.NULLABLE as 是否可空,b.CONSTRAINT_TYPE as 约束类型 from user_tab_columns a,user_constraints b,user_cons_columns c where a.table_name=c.table_name and a.column_name=c.column_name and c.constraint_name=b.constraint_name and a.table_name='my_table_name' ”

然后根据约束类型再来判断是否是主键('P'),可是问题在于:如果某个字段根本就没有约束,那么查询出来的结果中就没有这个字段的任何信息,也许是因为这个字段在user_constraints和user_cons_columns中根本不存在,所以联合查询就查不到了。
那么我该怎么写这个SQL语句才能达到目的呢??
这个问题我弄很久了,还是没能解决,真是郁闷,急盼各位高手能给我指点一下,实在感激不尽!
另外:小弟分已经散完了,但还是希望能得到各位宝贵的指教,因为实在解决不了了。。谢谢!!

...全文
180 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧