Wednesday, March 29, 2017

Ho to combine or concatenate multiple column data into one single virtual column in oracle

drop table INTADM.TMP_APP_ADDRESS

CREATE TABLE INTADM.TMP_APP_ADDRESS
(
  ADDRESS_SEQ         VARCHAR2(255 CHAR)        NOT NULL,
  VERSION             NUMBER(19)                NOT NULL,
  CREATOR_ID          VARCHAR2(30 CHAR),
  CREATED_DATE        TIMESTAMP(6)              NOT NULL,
  MODIFIER_ID         VARCHAR2(30 CHAR),
  MODIFIED_DATE       TIMESTAMP(6)              NOT NULL,
  REALM_ID            NUMBER(19)                DEFAULT -1                    NOT NULL,
  ADDRESS_LINE3       VARCHAR2(80 CHAR),
  ADDRESS_LINE2       VARCHAR2(80 CHAR),
  ADDRESS_LINE1       VARCHAR2(80 CHAR),
  CITY                VARCHAR2(256 CHAR),
  COUNTRY             VARCHAR2(256 CHAR),
  STATE               VARCHAR2(21 CHAR),
  ZIP_CODE            VARCHAR2(13 CHAR),
  ZIP_CODE_EXTENSION  VARCHAR2(10 CHAR),
   ADDRESS_COMBINE VARCHAR2(800 CHAR) generated always as
      (
         concat(concat(CITY,COUNTRY),STATE)
       ) virtual
 
)
TABLESPACE APP_DATA01
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING





insert into INTADM.TMP_APP_ADDRESS( ADDRESS_SEQ ,VERSION,CREATOR_ID,CREATED_DATE,MODIFIER_ID,MODIFIED_DATE,REALM_ID,ADDRESS_LINE3,ADDRESS_LINE2,ADDRESS_LINE1,CITY,COUNTRY,STATE,ZIP_CODE,ZIP_CODE_EXTENSION)  select  ADDRESS_SEQ ,VERSION,CREATOR_ID,CREATED_DATE,MODIFIER_ID,MODIFIED_DATE,REALM_ID,ADDRESS_LINE3,ADDRESS_LINE2,ADDRESS_LINE1,CITY,COUNTRY,STATE,ZIP_CODE,ZIP_CODE_EXTENSION
from INTADM.APP_ADDRESS where ADDRESS_SEQ='1c17e7a7-5e9d-45db-b80a-98b848dfe2e3'


insert into INTADM.TMP_APP_ADDRESS( ADDRESS_SEQ ,VERSION,CREATOR_ID,CREATED_DATE,MODIFIER_ID,MODIFIED_DATE,REALM_ID,ADDRESS_LINE3,ADDRESS_LINE2,ADDRESS_LINE1,CITY,COUNTRY,STATE,ZIP_CODE,ZIP_CODE_EXTENSION)  select  ADDRESS_SEQ ,VERSION,CREATOR_ID,CREATED_DATE,MODIFIER_ID,MODIFIED_DATE,REALM_ID,ADDRESS_LINE3,ADDRESS_LINE2,ADDRESS_LINE1,CITY,COUNTRY,STATE,ZIP_CODE,ZIP_CODE_EXTENSION
from INTADM.APP_ADDRESS where rownum < 100 AND COUNTRY IS NOT NULL




alter table INTADM.TMP_APP_ADDRESS add (ADDRESS_COMBINE_2 VARCHAR2(800 CHAR) generated always as(concat(concat(ADDRESS_LINE3,ADDRESS_LINE2),ADDRESS_LINE1)) virtual)


select * from INTADM.TMP_APP_ADDRESS