2026-03-12 20:23:15
This commit is contained in:
125
csierra/pdb_attributes_setup.sql
Normal file
125
csierra/pdb_attributes_setup.sql
Normal file
@@ -0,0 +1,125 @@
|
||||
-- pdb_attributes_setup.sql - Create pdb_attributes Table and merge_pdb_attributes Procedure for IOD PDBs Fleet Inventory
|
||||
DEF 1 = 'C##IOD';
|
||||
DECLARE
|
||||
l_exists NUMBER;
|
||||
l_sql_statement VARCHAR2(32767) := q'[
|
||||
CREATE TABLE &&1..pdb_attributes (
|
||||
-- /* key: version, db_domain, db_name, pdb_name */
|
||||
version DATE NOT NULL
|
||||
, db_domain VARCHAR2(64) NOT NULL
|
||||
, db_name VARCHAR2(9) NOT NULL
|
||||
, pdb_name VARCHAR2(30) NOT NULL
|
||||
-- oci domains
|
||||
, host_name VARCHAR2(64) NOT NULL
|
||||
, realm_type VARCHAR2(1) NOT NULL
|
||||
, realm_type_order_by NUMBER NOT NULL
|
||||
, realm VARCHAR2(4) NOT NULL
|
||||
, realm_order_by NUMBER NOT NULL
|
||||
, region VARCHAR2(64) NOT NULL
|
||||
, region_acronym VARCHAR2(4) NOT NULL
|
||||
, region_order_by NUMBER NOT NULL
|
||||
, locale VARCHAR2(4) NOT NULL
|
||||
, locale_order_by NUMBER NOT NULL
|
||||
, kiev_or_wf VARCHAR2(1) NULL
|
||||
-- data attributes
|
||||
, ez_connect_string VARCHAR2(256) NOT NULL
|
||||
, total_size_bytes NUMBER NOT NULL
|
||||
, sessions NUMBER NOT NULL
|
||||
, avg_running_sessions NUMBER NULL
|
||||
, created DATE NULL
|
||||
, open_time DATE NULL
|
||||
, timestamp DATE NOT NULL
|
||||
)
|
||||
PARTITION BY RANGE (version)
|
||||
INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
|
||||
(
|
||||
PARTITION before_2016_01_01 VALUES LESS THAN (TO_DATE('2016-01-01', 'YYYY-MM-DD'))
|
||||
)
|
||||
ROW STORE COMPRESS ADVANCED
|
||||
TABLESPACE IOD
|
||||
]';
|
||||
l_sql_statement2 VARCHAR2(32767) := q'[
|
||||
CREATE UNIQUE INDEX &&1..pdb_attributes_pk
|
||||
ON &&1..pdb_attributes
|
||||
(version, db_domain, db_name, pdb_name)
|
||||
LOCAL
|
||||
COMPRESS ADVANCED LOW
|
||||
TABLESPACE IOD
|
||||
]';
|
||||
l_sql_statement3 VARCHAR2(32767) := q'[
|
||||
ALTER TABLE &&1..pdb_attributes ADD PRIMARY KEY
|
||||
(version, db_domain, db_name, pdb_name)
|
||||
USING INDEX &&1..pdb_attributes_pk
|
||||
]';
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO l_exists FROM dba_tables WHERE owner = UPPER(TRIM('&&1.')) AND table_name = UPPER('pdb_attributes');
|
||||
IF l_exists = 0 THEN
|
||||
EXECUTE IMMEDIATE l_sql_statement;
|
||||
END IF;
|
||||
SELECT COUNT(*) INTO l_exists FROM dba_indexes WHERE owner = UPPER(TRIM('&&1.')) AND index_name = UPPER('pdb_attributes_pk');
|
||||
IF l_exists = 0 THEN
|
||||
EXECUTE IMMEDIATE l_sql_statement2;
|
||||
EXECUTE IMMEDIATE l_sql_statement3;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE
|
||||
PROCEDURE c##iod.merge_pdb_attributes (
|
||||
p_version IN VARCHAR2
|
||||
, p_timestamp IN VARCHAR2
|
||||
, p_db_domain IN VARCHAR2
|
||||
, p_db_name IN VARCHAR2
|
||||
, p_pdb_name IN VARCHAR2
|
||||
, p_host_name IN VARCHAR2
|
||||
, p_realm_type IN VARCHAR2
|
||||
, p_realm_type_order_by IN VARCHAR2
|
||||
, p_realm IN VARCHAR2
|
||||
, p_realm_order_by IN VARCHAR2
|
||||
, p_region IN VARCHAR2
|
||||
, p_region_acronym IN VARCHAR2
|
||||
, p_region_order_by IN VARCHAR2
|
||||
, p_locale IN VARCHAR2
|
||||
, p_locale_order_by IN VARCHAR2
|
||||
, p_kiev_or_wf IN VARCHAR2
|
||||
, p_ez_connect_string IN VARCHAR2
|
||||
, p_total_size_bytes IN VARCHAR2
|
||||
, p_sessions IN VARCHAR2
|
||||
, p_avg_running_sessions IN VARCHAR2
|
||||
, p_created IN VARCHAR2
|
||||
, p_open_time IN VARCHAR2
|
||||
)
|
||||
IS
|
||||
r c##iod.pdb_attributes%ROWTYPE;
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE q'[ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD"T"HH24:MI:SS']';
|
||||
--
|
||||
r.version := p_version;
|
||||
r.db_domain := p_db_domain;
|
||||
r.db_name := p_db_name;
|
||||
r.pdb_name := p_pdb_name;
|
||||
r.host_name := p_host_name;
|
||||
r.realm_type := p_realm_type;
|
||||
r.realm_type_order_by := p_realm_type_order_by;
|
||||
r.realm := p_realm;
|
||||
r.realm_order_by := p_realm_order_by;
|
||||
r.region := p_region;
|
||||
r.region_acronym := p_region_acronym;
|
||||
r.region_order_by := p_region_order_by;
|
||||
r.locale := p_locale;
|
||||
r.locale_order_by := p_locale_order_by;
|
||||
r.kiev_or_wf := p_kiev_or_wf;
|
||||
r.ez_connect_string := p_ez_connect_string;
|
||||
r.total_size_bytes := p_total_size_bytes;
|
||||
r.sessions := p_sessions;
|
||||
r.avg_running_sessions := p_avg_running_sessions;
|
||||
r.created := p_created;
|
||||
r.open_time := p_open_time;
|
||||
r.timestamp := p_timestamp;
|
||||
--
|
||||
DELETE c##iod.pdb_attributes WHERE version = r.version /*AND host_name = r.host_name*/ AND db_domain = r.db_domain AND db_name = r.db_name AND pdb_name = r.pdb_name;
|
||||
INSERT INTO c##iod.pdb_attributes VALUES r;
|
||||
COMMIT;
|
||||
END merge_pdb_attributes;
|
||||
/
|
||||
SHOW ERRORS;
|
||||
Reference in New Issue
Block a user