【发布时间】:2013-01-06 20:42:47
【问题描述】:
我想知道是否有一种方法可以通过简单的 select 语句找出某些列的默认值。尝试了几件事,例如:
SELECT * FROM all_tab_columns WHERE table_name = 'tablename'
但我看不到那里的列的默认值。不,我不想使用 SQL Plus 之类的东西,我需要一个 SELECT,猜有一些表提供该信息?
【问题讨论】:
-
默认值存储在
all_tab_columns的DATA_DEFFAULT列中(已记录在案:docs.oracle.com/cd/E11882_01/server.112/e25513/…) -
很好的回答。我对 stackoverflow 还很陌生,为什么要将其添加为评论而不是答案?
-
该列表示所有列的
而实际上这些列都有一个默认表达式,如 0、'HOST'、'-'、3000、SYSDATE 等。我可以在我的 PL 中看到它们/SQL Developer,但 SELECT 对我没有任何帮助。 -
那么 PL/SQL Developer 无法处理该数据类型。您应该找到更好的 SQL 客户端。我只是将其添加为评论,因为如果您费心看手册,这是一个显而易见的答案。顺便说一句:SQLPLus *would 能够显示这一点。
-
这里是一个例子:sqlfiddle.com/#!4/93fb0/1