Umgang mit virtuellen Spalten in Oracle 11g

Eine sehr gute Übersicht zum Umgang mit

virtuellen Spalten in Oracle 11g

stellt die Übersicht von Frank Schneede (Oracle) dar:

http://www.oracle.com/webfolder/technetwork/de/community/dbadmin/tipps/virtual_columns/index.html

Bsp.: Anlegen
SQL> CREATE TABLE t_test
  2  ( c_col1 INTEGER
  3  , c_col2 INTEGER
  4  , c_col3 INTEGER GENERATED ALWAYS AS (c_col1 + c_col2) VIRTUAL
  5  );

Table created.


Bsp: Virtuelle Spalten und PL/SQL-Funktionen
Anlegen der PL-Funktion -> diese muss als deterministic deklariert sein
SQL> CREATE FUNCTION f_summiere(
  2         p1 IN INTEGER,
  3         p2 IN INTEGER ) RETURN INTEGER DETERMINISTIC AS
  4  BEGIN
  5   RETURN p1 + p2;
  6  END f_summiere;
  7  /

Function created.
Nutzung der PL-Funktion als virtuelle Spalte
SQL> ALTER TABLE t_test ADD
  2   c_col5 GENERATED ALWAYS AS (f_summiere(c_col1,c_col2));

Table altered.

Weitere Detail, Beispiele und Einschränkungen finden sich im besagten Artikel.

Kommentare

Beliebte Posts aus diesem Blog

trunc(sysdate) - nette Spiele mit dem Datum

Zufallszahlen und -text generieren - DBMS_RANDOM

Laufzeiten umrechnen, Sekundenangaben lesbar darstellen