2015-09-23 5 views
0

У меня есть таблица под названием M_StockCode_JB. Его поля: Code, Description и Display.столбец обновления Oracle Trigger в той же таблице

Показать все еще пусто, но код и описание имеют значение, как:

M_StockCode_JB 
----------------------- 
Code | Description 
1  | Apple 
2  | Banana 
3  | Pinneaple 

Я хочу добавить столбец под названием «Display», которые содержат как данные из кода и описания, я планирую использовать этот SQL SELECT "NAME" ||'-' || DESCRIPTION FROM M_STOCKCODE_JB так будет генерироваться следующим образом:

   M_StockCode_JB 
    ------------------------------------------ 
    Code | Description | Display 
    1  | Apple   | 1-Apple 
    2  | Banana   | 2-Banana 
    3  | Pineapple  | 3-Pineapple 

Как я могу вставить для отображения колонки, как добавить код столбца и описание?

+0

May i kn ow Какую версию оракула вы используете? – Buddi

+0

@Tarun Я использую Oracle 12c –

ответ

2

Если в столбце Display ВСЕГДА содержат только "NAME" ||'-' || DESCRIPTION, и вы используете Oracle 11G или выше, вы можете создать виртуальный столбец

ALTER TABLE M_StockCode_JB ADD (Display AS (NAME ||'-' || DESCRIPTION)) 

В любой версии вы можете создать вид

CREATE OR REPLACE VIEW V_M_StockCode_JB AS 
SELECT "NAME" ||'-' || DESCRIPTION FROM M_STOCKCODE_JB 

Если колонка необходимо обновить, тогда вам понадобится реальная колонка с триггером

ALTER TABLE M_StockCode_JB ADD (Display VARCHAR2(4000)); 
CREATE OR REPLACE TRIGGER M_StockCode_JB_trig 
    BEFORE 
    INSERT ON M_StockCode_JB 
    FOR EACH ROW  
BEGIN 
    :new.Display = :new.NAME ||'-' || :new.DESCRIPTION; 
END; 
/
+0

Спасибо, что так много работает :) –

Смежные вопросы