簡體   English   中英

Oracle SQL 合並一張表中的列

[英]Oracle SQL combine columns from one table

我正在使用 oracle sql 開發人員並希望構建一個觸發器以將值插入表列。

我的表是:

column1(num) | column2(num) | column3(var)
     1              5
     6              4
     7              3

我想合並前兩列,所以最后 column3 應該是這樣的:

column3(var)

       1_5
       6_4
       7_3

我的想法是:

create or replace TRIGGER   "Database"."TRIGGER"
BEFORE INSERT OR UPDATE ON   "Database"."TABLE"
FOR EACH ROW

BEGIN
    SELECT column1  ||  column2
    INTO :NEW.column3

    FROM TRIGGER;
    
END;

但是 column3 仍然是空的,有人能告訴我我做錯了什么嗎?

提前致謝

與其使用觸發器,不如在刪除現有列后添加一個虛擬列,例如

SQL> ALTER TABLE t DROP COLUMN col3;

SQL> ALTER TABLE t
ADD (
     col3 AS (col1||'_'||col2)
    );

這總是取決於這兩列,並且不允許任何 DML,已經不需要,它有利於顯示目的而不會干擾人為因素。

演示

BEGIN
    :NEW.column3 :=column1  ||  column2;

END;

將觸發器名稱稱為“Trigger”是個壞主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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