[英]How to check from where the column value is populating
我有表TEST_ORD
,其中我有ORD_DAYID列,這是虛擬列。 我想知道此列中的值從何處以及如何填充。 因為我不能在插入語句中使用此列,因為它是虛擬列。
我嘗試了以下查詢,但沒有從列中以及如何填充該列的值中提供信息:
Select * from all_source where upper(TEST) like '%TEST_ORD_ID%';
[DBA|ALL|USER]_TAB_COLUMNS
視圖的DATA_DEFAULT
列中列出了用於生成虛擬列的表達式。
例如:
使用虛擬列創建的表將根據定義進行填充。
CREATE drop TABLE virtab(
id NUMBER,
first_name VARCHAR2(10),
last_name VARCHAR2(10),
salary NUMBER(9,2),
comm1 NUMBER(3),
comm2 NUMBER(3),
salary1 AS (ROUND(salary*(1+comm1/100),2)),
salary2 NUMBER GENERATED ALWAYS AS (ROUND(salary*(1+comm2/100),2)) VIRTUAL,
CONSTRAINT employees_pk PRIMARY KEY (id)
);
選擇
select * from DBA_TAB_COLUMNS where table_name = 'VIRTAB' and column_name = 'SALARY2'
輸出:
SQL> select DATA_DEFAULT from DBA_TAB_COLUMNS where table_name = 'VIRTAB' and column_name = 'SALARY2';
DATA_DEFAULT
--------------------------------------------------------------------------------
ROUND("SALARY"*(1+"COMM2"/100),2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.