Showing posts with label Oracle Virtual Columns. Show all posts
Showing posts with label Oracle Virtual Columns. Show all posts

Saturday, November 19, 2011

Oracle Virtual Columns

With Oracle 11g, you can create virtual columns in tables. Values are derived on the fly and not stored.

Syntax: column_name [datatype] [GENERATED ALWAYS] AS (expression) [VIRTUAL]

If datatype is omitted, it is determined based on the expression.

 

   1:  ALTER TABLE EMPLOYEES2
   2:  ADD
   3:  (
   4:     CEO_IND VARCHAR2(1) AS (CASE WHEN EMPLOYEE_ID=100 THEN 'Y' ELSE NULL END)
   5:  )



   1:  SELECT * FROM EMPLOYEES2
   2:  WHERE CEO_IND='Y'



image



   1:  ALTER TABLE EMPLOYEES2
   2:  ADD
   3:  (
   4:     HML_SALARY_IND VARCHAR2(1) AS (CASE WHEN SALARY <=10000 THEN 'L' WHEN SALARY >10000 AND SALARY <=20000 THEN 'M' WHEN SALARY >20000 THEN 'H' ELSE NULL END)
   5:  )

image


Virtual columns cannot be based on other virtual columns


   1:  ALTER TABLE EMPLOYEES2
   2:  ADD
   3:  (
   4:     ELIGIBLE_BONUS AS (CASE WHEN CEO_IND='Y' THEN SALARY*3 ELSE SALARY*0.5 END)
   5:  )
   6:   
   7:  Error at line 1
   8:  ORA-54012: virtual column is referenced in a column expression




No DMLs are permitted on virtual columns


   1:  INSERT INTO  EMPLOYEES2(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID)
   2:  VALUES (207, 'John', 'Doe', 'JDOE', '515.123.8182', TO_DATE('6/10/2002', 'MM/DD/YYYY'), 'MK_MAN', 15000, 0, 100, 20 )



image
   1:  UPDATE EMPLOYEES2 SET HML_SALARY_IND=NULL
   2:   
   3:  Error at line 1
   4:  ORA-54017: UPDATE operation disallowed on virtual columns



Virtual Columns can be indexed


   1:  CREATE INDEX HML_SAL_IDX ON EMPLOYEES2(HML_SALARY_IND)




Index created.


image


Tables can be partitioned based on virtual columns:


 


   1:  CREATE TABLE EMPLOYEES2_UR
   2:  (
   3:    EMPLOYEE_ID     NUMBER(6),
   4:    FIRST_NAME      VARCHAR2(20 BYTE),
   5:    LAST_NAME       VARCHAR2(25 BYTE) CONSTRAINT EMP_LAST_NAME_NN2 NOT NULL,
   6:    EMAIL           VARCHAR2(25 BYTE) CONSTRAINT EMP_EMAIL_NN2 NOT NULL,
   7:    PHONE_NUMBER    VARCHAR2(20 BYTE),
   8:    HIRE_DATE       DATE CONSTRAINT EMP_HIRE_DATE_NN2 NOT NULL,
   9:    JOB_ID          VARCHAR2(10 BYTE) CONSTRAINT EMP_JOB_NN2 NOT NULL,
  10:    SALARY          NUMBER(8,2),
  11:    COMMISSION_PCT  NUMBER(2,2),
  12:    MANAGER_ID      NUMBER(6),
  13:    DEPARTMENT_ID   NUMBER(4),
  14:    CEO_IND VARCHAR2(1) AS (CASE WHEN EMPLOYEE_ID=100 THEN 'Y' ELSE NULL END),
  15:    HML_SALARY_IND VARCHAR2(1) AS (CASE WHEN SALARY <=10000 THEN 'L' WHEN SALARY >10000 AND SALARY <=20000 THEN 'M' WHEN SALARY >20000 THEN 'H' ELSE NULL END)
  16:  )
  17:  PARTITION BY LIST(HML_SALARY_IND)
  18:  (
  19:     PARTITION PART_H VALUES('H'),
  20:     PARTITION PART_M VALUES('M'),
  21:     PARTITION PART_L VALUES('L') 
  22:  )



image

ShareThis

Meebo

Labels

2012 (1) Adobe Reader (1) Analysis Services (4) Analytic Functions (1) APEX Web Service (1) Apple (1) Aptana (1) Architecture (1) ASP.NET MVC3 (2) Azure (3) Azure Data Market (1) Azure Data Marketplace (4) Best Practices Analyzer (1) Best States in America (US) for Business–CNBC–Excel 2013 Web App Interactive (1) BI for .NET (1) Big Data (2) Bluefish (1) Boise (1) Butternut (1) C# (3) C# Introduction (1) Chow (1) Chrome (1) Chrome Remote Desktop (1) Chromium (1) Cliplets (1) Cloud 9 IDE (1) Cloudon MS Office iPad app (1) Code (1) CodeAcademy (1) CoffeeCup (1) Command (1) communicator (1) Community Edition (1) compiz (1) Contracts (1) Country Region Reference Data (1) Creating presentations using deck.js (1) Crescent (1) Data Explorer (2) Data Mining (2) Data Modeling (1) Data Quality (1) Data Quality Service (1) DataTables (1) Date (1) DAX (1) deck.js (1) Decrypt Files (1) Demo (1) Denali (6) Detect Categories (1) Dropbox (1) Eclipse IDE for Java EE Developers (1) Editor (1) Enter password for keyring 'default' to unlock on Ubuntu (1) Entity Framework 4.0 (1) error (1) ERwin (3) excel (1) Excel 2010 (2) Excel 2013 (1) Excel Services (1) Filezila (1) Format (1) Free (5) free ebooks (2) Free training (2) Fusion Tables (1) Getaround.com (1) Google (2) Google Cloud Connect for Microsoft Office (1) Google Currents (1) Google Docs (1) Google Graph Calculator (1) Hadoop (2) Hadoop for Microsoft Windows (1) Highlight (1) Hive (2) How to embed a Google Book Preview in Blogger? (1) How to embed word (1) HP Envy Spectre (1) HP Z1 Workstation (1) HTML (1) HTML-Kit (1) HTML5 (1) HTML5 animation using Mugeda tool (1) HTML5 Video (1) iBooks (1) Improvement (1) Inspiration (1) Install (1) Install Oracle SH schema (1) Installation (1) Installing (1) Installing Android Apps on Windows using bluestacks (1) Installing EntityFrameWork (1) Integration Services (1) iOS5 (1) iPad (2) iPhone (1) Issue (1) JavaScript (7) jQuery (5) Kinect (1) Knockout.js (1) Komodo Edit (1) Komodo IDE (1) Kompozer (1) Language Change (1) Learn SQL Server 2012 (1) Learn Windows Azure (1) Lego Building Blocks (1) Lifebrowser (1) LightSwitch (2) LINQ Oracle (1) Managing Project (1) mds (1) Menus using CSS3 (1) Microsoft (2) Microsoft BI (6) Microsoft Research (1) Microsoft's Future Vision on Productivity (1) Model first (1) mongodb (1) Motivation (2) Movie (1) MS Office (1) MSDN (1) NASA (1) nautilus-open-terminal (1) Netbeans (1) Netflix (2) Notepad++ (1) NuGet Package Manager (1) OBIEE (4) OData (2) ODP.NET (1) Office (2) Office 2013 (1) Office 2013 Quick Start Guides (1) Office Diagnostics (1) Office Tips and Tricks (1) Office Touch Guide (1) Office365 (2) Omnibox (1) Open ssh (1) ORA Errors (1) ORA-12514 (1) Oracle (1) Oracle 11g Express Edition Options Not Included (1) Oracle 11g Invisible Indexes (1) Oracle 11g New Features (1) Oracle 11g Read Only tables (1) Oracle APEX (2) Oracle Cloud (1) Oracle Data Pump (1) Oracle Express (1) Oracle Express 11g (2) oracle java 7 (1) Oracle Learning Library (1) Oracle OData (1) Oracle Open World 2011 (1) Oracle Pivot and Unpivot (1) Oracle Prebuilt VM Appliances (1) Oracle SQL Developer (1) Oracle Virtual Columns (1) Oracle XML DB (1) Outlook 2010 (3) Performance (1) PerformancePoint Services (2) Personal (1) Phonegap (1) Picture (1) PluralSight (1) Power View (2) PowerPivot (14) powerpoint in a site or a blog (1) PowerShell (1) Prettyprint (1) prezi (1) Project Juneau (1) Python (1) Rainbow (1) Recipe (1) Recorder (1) Rent (1) Reporting Services (2) Resources (1) RIA Services (1) Ruby (1) Samsung Galaxy S III (ATT) with Android 4.1 Jelly Bean (2) Screen Capture (1) Search (2) Security (1) Self Service BI (4) Server Error (1) Seth Godin (1) Setup (1) SharePoint (1) SharePoint 2010 (9) SharePoint 2010 Training (1) SharePoint BI Performance Point (3) Shell Scripting (1) Shutter (1) Silverlight (1) Skydrive (1) SOA (2) Social Network (1) Soup (1) SP2-0750 (1) Spotify (1) SQL Azure (1) SQL Server 2008 R2 (1) SQL Server 2008 R2 Reporting Services (1) SQL Server 2012 (5) sql server denali data quality services (1) SQL Server Virtual Labs (2) SQL*Plus error (1) Squash (1) SSAS Tabular (1) Storing and Retrieving XML data in Oracle 11g (1) Tabular (1) TechEd 2012 (1) TED (1) Terminator (1) Texmaker (1) Thunderstorm (1) TimeTo365.com (1) Tip (1) Tips (1) Tips and Tricks (1) Training (1) Ubuntu (1) Ubuntu 11.04 (1) Ubuntu Oracle (1) unrar (1) Vertica (2) Vertica VM appliance (1) video.js (1) VirtualBox (1) Visio 2010 crashes (1) Visio Services (2) Visual Studio 11 Developer Preview Training Kit (1) Visual Studio 2010 (1) Visual Studio 2010 and .NET Framework 4 Training Kit (1) Visual Studio Express 2012 (1) VLC (1) VM (1) WCF (1) Web Stack (1) WebMatrix (1) Webucator (1) What is new in SQL Server 2012 Analysis Services (1) Whole Foods Boise ID (1) Why won’t Microsoft Lync 2010 start (1) Windows 2008R2 SP1 (1) Windows 7 (1) Windows 8 Charms (1) Windows 8 Consumer Preview Demo (1) Windows 8 Contracts (1) Windows 8 Metro Apps (3) Windows 8 Touch Language (1) Windows 8 Video Driver issue/problem (1) Windows App Store (1) windows azure (3) Windows Phone 7 (1) Windows Phone Development (1) Wine (1) Word 2010 (1) Word 2013 (1) Word PDF Reflow (1) Work (1) zip (1) ZoomIt v4.2 (1)

Disclaimer

This blog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion. My blog comes with no guarantees, and the content might contain errors. Expect to find a repeat of information that you can find in other blogs and sites. This is mainly for my future reference, It is my way of documenting things. I give due credit to contents, images, information sourced from product demos and other external sources wherever possible.