我想知道是否有一种方法可以通过简单的 select 语句找出某些列的默认值。尝试了几件事,例如:
SELECT * FROM all_tab_columns WHERE table_name = 'tablename'
但我看不到那里的列的默认值。不,我不想使用 SQL Plus 之类的东西,我需要一个 SELECT,猜有一些表提供该信息?
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT
from DBA_TAB_COLUMNS
where TABLE_NAME = 'TABLE_NAME';
替换要查看其默认列数据的 Table_Name。
试试下面的查询
Select * From USER_TAB_COLUMNS where TABLE_NAME ='Table Name'
默认值位于 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')
上面的例子都没有对我有用,但是这个例子对我有用。关键部分是 table_name 的“上部”。也许特定于我团队的数据库,但如果您遇到困难,这应该可以
SELECT a.column_name "Column",
a.data_default "Default"
FROM all_tab_columns a
WHERE a.table_name = Upper('tablename')