2013-01-23 47 views
11

Tôi tự hỏi liệu có cách nào để tìm ra giá trị mặc định của một số cột với một câu lệnh chọn đơn giản hay không. Đã thử một vài điều như:Tìm giá trị mặc định cho một cột (Oracle)

SELECT * FROM all_tab_columns WHERE table_name = 'tablename' 

Nhưng tôi không thể thấy giá trị mặc định cho các cột ở đó. Và không có tôi không muốn sử dụng một cái gì đó như SQL Plus, tôi cần một SELECT, đoán có một số bảng cung cấp thông tin đó?

+6

Giá trị mặc định được lưu trữ trong cột 'DATA_DEFFAULT' của 'all_tab_columns' (mà ** là ** tài liệu: http://docs.oracle .com/cd/E11882_01/server.112/e25513/statviews_2103.htm # I1020277) –

+0

Được trả lời độc đáo. Tôi khá mới để stackoverflow, tại sao làm thêm này như là một bình luận thay vì một câu trả lời? –

+0

Cột đó cho biết cho tất cả các cột trong khi thực tế, tất cả các cột đều có biểu thức mặc định như 0, 'HOST', '-', 3000, SYSDATE v.v. Tôi có thể thấy chúng trong PL/SQL Developer. giúp tôi chút nào. – aLpenbog

Trả lời

3

thử truy vấn dưới đây

Select * From USER_TAB_COLUMNS where TABLE_NAME ='Table Name' 
9
Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT 
from DBA_TAB_COLUMNS 
where TABLE_NAME = 'TABLE_NAME'; 

Thay Table_Name mà bạn muốn xem dữ liệu cột mặc định.

+0

sẽ tốt hơn nếu sử dụng 'like' thay vì' = 'là' Chọn TABLE_NAME, COLUMN_NAME, DATA_DEFAULT từ DBA_TAB_COLUMNS trong đó TABLE_NAME thích ' % GI_LOCATION% '; 'có nhiều khả năng nhận được kết quả. – korefn

+7

@ korefn, không, bạn có thể sử dụng LIKE nếu bạn không biết tên bảng là gì; nếu không, '=' là thích hợp. –

-1

Mặc định giá trị trong cột DATA_DEFAULT từ ALL_TAB_COLUMNS:

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

tên chế độ xem sai? –

+0

ops! bạn hoàn toàn đúng! cảm ơn! chỉ chỉnh sửa ... – helenov

Các vấn đề liên quan