16

我想知道是否有一种方法可以通过简单的 select 语句找出某些列的默认值。尝试了几件事,例如:

SELECT * FROM all_tab_columns WHERE table_name = 'tablename'

但我看不到那里的列的默认值。不,我不想使用 SQL Plus 之类的东西,我需要一个 SELECT,猜有一些表提供该信息?

4

4 回答 4

14
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT
from DBA_TAB_COLUMNS
where TABLE_NAME = 'TABLE_NAME';

替换要查看其默认列数据的 Table_Name。

于 2013-01-23T12:14:55.060 回答
6

试试下面的查询

Select * From USER_TAB_COLUMNS where TABLE_NAME ='Table Name'
于 2013-01-23T11:29:44.660 回答
1

默认值位于 ALL_TAB_COLUMNS 的 DATA_DEFAULT 列中:

SELECT TABLE_NAME, COLUMN_NAME, DATA_DEFAULT 
  FROM ALL_TAB_COLUMNS
 WHERE TABLE_NAME = 'tablename'

[2021-01-26] 编辑:请注意,“tablename”参数必须与真实表名的大小写匹配,因为它出现在 ALL_TAB_COLUMNS 上。更多时候它是大写的,所以可能是有用的使用UPPER()函数来确保它。

 WHERE TABLE_NAME = UPPER('tablename')
于 2017-09-11T14:13:38.050 回答
0

上面的例子都没有对我有用,但是这个例子对我有用。关键部分是 table_name 的“上部”。也许特定于我团队的数据库,但如果您遇到困难,这应该可以

SELECT a.column_name "Column",
       a.data_default "Default"
FROM   all_tab_columns a
WHERE  a.table_name = Upper('tablename')
于 2020-12-10T14:18:08.053 回答