簡體   English   中英

如何從列值的填充位置檢查

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM