MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/ctx/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/ctx/admin/d1200000.sql

Rem
Rem $Header: ctx_src_2/src/dr/admin/d1200000.sql /main/31 2017/02/06 21:05:04 stanaya Exp $
Rem
Rem d1200000.sql
Rem
Rem Copyright (c) 2011, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      d1200000.sql - <one-line expansion of the name>
Rem
Rem    DESCRIPTION
Rem      downgrade from 12.1 to 11.2.0.2
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem
Rem    BEGIN SQL_FILE_METADATA 
Rem      SQL_SOURCE_FILE: ctx_src_2/src/dr/admin/d1200000.sql 
Rem      SQL_SHIPPED_FILE: ctx/admin/d1200000.sql
Rem      SQL_PHASE: D1200000
Rem      SQL_STARTUP_MODE: NORMAL 
Rem      SQL_IGNORABLE_ERRORS: NONE 
Rem      SQL_CALLING_FILE: NONE
Rem    END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    yinlu       08/28/15 - lrg 18241069: revoke create sequence privilege
Rem                           from ctxapp
Rem    surman      04/21/15 - 20741195: Check object type
Rem    surman      01/26/15 - 20411134: Add SQL metadata tags
Rem    gpodila     11/06/14 - Bug 14254610 index optimization in rebuild fails
Rem    gpodila     10/22/14 - Bug 13640676 cannot exchange table partition
Rem    boxia       11/26/13 - modify Btree-backed sdata clauses
Rem    aczarlin    12/13/11 - btree sdata dtypes
Rem    bhristov    11/10/11 - revoke SET CONTAINER from ctxsys
Rem    rkadwe      11/14/11 - ATG downgrade changes
Rem    rpalakod    10/14/11 - range postings
Rem    thbaby      08/24/11 - delete E_TABLE_CLAUSE storage attribute
Rem    thbaby      08/24/11 - delete ns_enable section group attribute
Rem    thbaby      06/14/11 - delete xml_enable section group attribute
Rem    thbaby      06/14/11 - drop table dr$section_group_attribute
Rem    ssethuma    05/06/11 - Section specific stoplist
Rem    rpalakod    02/08/11 - downgrade from 12.1
Rem    rpalakod    02/08/11 - Created
Rem

SET ECHO ON
SET FEEDBACK 1
SET NUMWIDTH 10
SET LINESIZE 80
SET TRIMSPOOL ON
SET TAB OFF
SET PAGESIZE 100


  
REM ==================================================================
REM Reverse Changes from Forward Index project
REM ==================================================================

delete from dr$object_attribute
  where OAT_ID=90119 and OAT_CLA_ID=9 and OAT_OBJ_ID=1 and OAT_ATT_ID=19
    and OAT_NAME='FORWARD_INDEX';
delete from dr$object_attribute
  where OAT_ID=90120 and OAT_CLA_ID=9 and OAT_OBJ_ID=1 and OAT_ATT_ID=20
    and OAT_NAME='O_TABLE_CLAUSE';
delete from dr$object_attribute
  where OAT_ID=90121 and OAT_CLA_ID=9 and OAT_OBJ_ID=1 and OAT_ATT_ID=21
    and OAT_NAME='O_INDEX_CLAUSE';
delete from dr$object_attribute
  where OAT_ID=90122 and OAT_CLA_ID=9 and OAT_OBJ_ID=1 and OAT_ATT_ID=22
    and OAT_NAME='SAVE_COPY';
delete from dr$object_attribute
  where OAT_ID=90123 and OAT_CLA_ID=9 and OAT_OBJ_ID=1 and OAT_ATT_ID=23
    and OAT_NAME='D_TABLE_CLAUSE';
delete from dr$object_attribute
  where OAT_ID=90124 and OAT_CLA_ID=9 and OAT_OBJ_ID=1 and OAT_ATT_ID=24
    and OAT_NAME='SAVE_COPY_MAX_SIZE';
commit;

REM ==================================================================
REM Reverse Changes from range postings
REM ==================================================================
delete from dr$object_attribute
  where oat_id=90125 and oat_cla_id=9 and oat_obj_id=1 and oat_att_id=25
    and oat_name='SN_TABLE_CLAUSE';

delete from dr$object_attribute
  where oat_id=90126 and oat_cla_id=9 and oat_obj_id=1 and oat_att_id=26
    and oat_name='SN_INDEX_CLAUSE';

REM ===================================================================
REM Reverse Section specific stoplist changes
REM ===================================================================

delete from dr$index_value where ixv_sub_oat_id = 240109;


REM ===================================================================
REM Reverse Section specific attributes project changes
REM ===================================================================

REM Migrating back from section specific attributes infrastructure to
REM colon separated infrastructure

declare
  sec_id       number := 0;
  sec_csv      varchar2(500);
  sec_oat_id   number;
  sec_rcnt     number;
  cnt          number := 0;
begin
  for c1 in (select ixv_idx_id, ixv_value, ixv_sub_group, ixv_sub_oat_id
               from dr$index_value, dr$object_attribute
              where ixv_oat_id = oat_id
                and oat_name = 'SECTION_ATTRIBUTE'
           order by ixv_sub_group)
  loop
    if (sec_id <> c1.ixv_sub_group) then
      sec_id := c1.ixv_sub_group;
      select count(*) into sec_rcnt from dr$index_value
        where ixv_idx_id = c1.ixv_idx_id
          and ixv_sub_group = c1.ixv_sub_group;
    end if;

    if (c1.ixv_sub_oat_id = 240107) then
      sec_csv :=  sec_csv || 'T' || c1.ixv_value;
    else
      sec_csv :=  sec_csv || c1.ixv_value ||':';
    end if;
    cnt := cnt + 1;

    if (sec_rcnt = cnt and sec_rcnt <> 0) then
      select ixv_oat_id into sec_oat_id from dr$index_value
        where ixv_idx_id = c1.ixv_idx_id
          and ixv_value = to_char(sec_id);
      insert into dr$index_value values
        (c1.ixv_idx_id, sec_oat_id, rtrim(sec_csv, ':'), 0, 0);
      delete from dr$index_value
        where ixv_idx_id = c1.ixv_idx_id
          and ixv_value = to_char(sec_id);
      delete from dr$index_value
        where ixv_idx_id = c1.ixv_idx_id
          and ixv_sub_group = sec_id;
      update dr$index_object
        set ixo_acnt = ixo_acnt - sec_rcnt
        where ixo_cla_id = 5
          and ixo_idx_id = c1.ixv_idx_id;
      sec_csv := '';
      sec_rcnt := 0;
      cnt := 0;
    end if;

  end loop;
end;
/

alter table dr$class drop constraint drc$cla_key;

drop table dr$section_attribute;

update dr$object_attribute
  set oat_datatype = 'S'
  where oat_cla_id = 5;

delete from dr$object_attribute 
  where oat_name = 'SECTION_ATTRIBUTE';

delete from dr$object_attribute
  where oat_cla_id = 24;

delete from dr$object where obj_cla_id = 24;

delete from dr$class where cla_id = 24;

delete from dr$object_attribute
  where oat_name = 'XML_ENABLE';

delete from dr$object_attribute
  where oat_name = 'NS_ENABLE';

delete from dr$object_attribute
  where oat_name = 'E_TABLE_CLAUSE';

REM ===================================================================
REM Drop configuration column from dr$index 
REM ===================================================================
alter table dr$index drop column idx_config_column;

-------------------------------------------------------------------------
--- dr$section_group_attribute
-------------------------------------------------------------------------
declare
  stmt varchar2(4000);
  cnt  number;
begin
  stmt := 'select count(*) from user_tables where table_name=''' || 
          'DR$SECTION_GROUP_ATTRIBUTE' ||
          '''';
  execute immediate stmt into cnt;
  if (cnt = 1) then
    stmt := 'drop table dr$section_group_attribute';
    execute immediate stmt;
  end if;
  exception 
    when others then
      null;
end;
/

REM ===================================================================
REM Revoke SET CONTAINER privilege granted to ctxsys
REM ===================================================================
revoke set container from ctxsys;

------------------------------------------------------------------------
-- ATG Objects
------------------------------------------------------------------------
drop view CTX_USR_ANL_DICTS;

drop view CTX_AUTO_LEXER_DICTIONARIES;

drop table DR$DICTIONARY;

drop table DR$IDX_DICTIONARIES;

delete from dr$object_attribute where
   oat_cla_id = 6 and
   oat_obj_id = 12 and
   oat_name in ('PRINTJOINS', 'SKIPJOINS');

REM -------------------------------------------------------------------
REM  13640676
REM -------------------------------------------------------------------

DECLARE
  sql_q VARCHAR2(120);
BEGIN
  -- 20741195: Restrict to objects of type TABLE
  FOR rec IN (SELECT a.object_name, a.object_type, a.owner
                FROM all_objects a, all_tab_columns c
                WHERE a.object_name LIKE 'DR$%$I'
                  AND a.object_type = 'TABLE'
                  AND a.object_name = c.table_name
                  AND c.column_name = 'TOKEN_TYPE') LOOP
    sql_q:= 'CREATE TABLE dr$bug_13640676$ AS SELECT * FROM ' ||
      rec.owner || '.' || rec.object_name;
    EXECUTE IMMEDIATE sql_q;
    sql_q:= 'TRUNCATE TABLE ' || rec.owner || '.' || rec.object_name ;
    EXECUTE IMMEDIATE sql_q;
    sql_q:= 'ALTER TABLE ' || rec.owner || '.' || rec.object_name ||
      ' MODIFY (token_type NUMBER(3))';
    EXECUTE IMMEDIATE sql_q;
    sql_q:= 'INSERT INTO ' || rec.owner || '.' || rec.object_name ||
      ' SELECT * FROM dr$bug_13640676$';
    EXECUTE IMMEDIATE sql_q;
    EXECUTE IMMEDIATE 'DROP TABLE dr$bug_13640676$';
  END LOOP;
EXCEPTION
  WHEN OTHERS THEN
    EXECUTE IMMEDIATE 'drop table dr$bug_13640676$';
      RAISE;
END;
/

declare 
sql_q varchar2(120);
begin
FOR r in (select idx_id , idx_option from dr$index)
LOOP
 if(r.idx_option='PY') then
  sql_q:= 'update dr$index set idx_option=''P'' where idx_id='||r.idx_id;
  execute immediate(sql_q);
/* Bug 14254610 - Index optimization in rebuild mode fails with ORA-14097 
   after 11.2.0.3 DB upgrade */
 elsif(r.idx_option='CY') then
  sql_q:= 'update dr$index set idx_option=''C'' where idx_id='||r.idx_id;
  execute immediate(sql_q);
 elsif(r.idx_option='TQY') then
  sql_q:= 'update dr$index set idx_option=''TQ'' where idx_id='||r.idx_id;
  execute immediate(sql_q);
 elsif(r.idx_option='QTY') then
  sql_q:= 'update dr$index set idx_option=''QT'' where idx_id='||r.idx_id;
  execute immediate(sql_q);
 elsif(r.idx_option='Y') then
  sql_q:= 'update dr$index set idx_option='''' where idx_id=' ||r.idx_id;
  execute immediate(sql_q);
 end if;
END LOOP;
END;
/

REM -------------------------------------------------------------------
REM lrg 18241069: revoke privileges granted in 12.1
REM -------------------------------------------------------------------

BEGIN
  EXECUTE IMMEDIATE 'revoke create sequence from ctxapp';
EXCEPTION
 WHEN OTHERS THEN NULL;
END;
/

OHA YOOOO