iSelfSchooling.com - Since 1999  References  |  Job Openings
    Home  | Search more  | Oracle Syntax  | Computer Institute   | (Login or Register to access to VIDEOS)
 

Copyright & User Agreement

   Suggestions Email2aFriendHomepage us! |  Bookmark

Services

  Vision/Mission

  Services

  Biography

  Contact Us

 FREE Training

  Start...

  SQL

  PL/SQL

  Forms 

  Reports

  DBA Fundamentals

  Performance

  Prepare for OCP

  ShareUrNotes

...

  Acknowledgement

  Who is who

  University Directory

  Links...

 

 

 

FREE Online Oracle Training for beginners and advanced - The most comprehensive Oracle tutorial

The authors do not guarantee or take any responsibility for the accuracy, or completeness of the information.

BASICS

SQL | PL/SQL

DEVELOPERS

FORMS 2 | REPORTS | Other TOOLS

DBAs

FUNDAMENTALS 2 | PERFORMANCE | OEM

ADVANCE

APPLICATION SERVER | GRID CONTROL | ARTICLES 2 3 4

Advanced - Articles II

Lesson 01 | Lesson 02 | Lesson 03 | Lesson 04 | Lesson 05 | Lesson 06 | Lesson 07 | Lesson 08 | Lesson 09 | Lesson 10 | Lesson 11 | Lesson 12 | Lesson 13 | Lesson 14 | Lesson 15 | Lesson 16 | Lesson 17 | Lesson 18 | Lesson 19 | Lesson 20 | Lesson 21 | Lesson 22 | Lesson 23 | Lesson 24 | Lesson 25 | Lesson 26 | Lesson 27 | Lesson 28 | Lesson 29 | Lesson 30 | Lesson 31 | Lesson 32 | Lesson 33 | Lesson 34 | Lesson 35 |

Lesson 26

"You give but little when you give of your possessions. It is when you give of yourself that you truly give." 

-Kahlil Gibran (1883-1931)

How to replicate data from location "A" to "B" based on a table with a VARRAY collection type?

 

Today, a lot of company wants to replicate their data for a reason of backup and recovery, accessibility, performance, etc.

 

This article is intended to introduce the enhancement in Oracle9i to teach how to replicate an object from location “A” to “B” based on a table with a VARRAY collection type.

 

We will learn how to create a materialized view based on a table with a VARRAY collection type.

 

We assume that you have two sites (Master Site with a service name of SITEA and Materialized View Site with a service name of SITEB). Also we assume that we have user schema called REPLICATOR in both sites.

 

STEPS to implement replication:

Step 1: Connect to “SITEA” (Master Site) as the REPLICATOR user.

CONNECT replicator/…@SITEA

 

Step 2: Create the “Address_Book_type” type with VARRAY collection type to keep address1, address2, and address3.

CREATE OR REPLACE TYPE Address_Book_type_array AS VARRAY(3) OF VARCHAR2(20);

 

Step 3: Create the “ADDRESS_BOOK” table with created “ADDRESS_BOOK_TYPE_ARRAY” type.

CREATE TABLE address_book

( id NUMBER(10) CONSTRAINT address_book_pk PRIMARY KEY,

first_name VARCHAR2(15),

last_name VARCHAR2(15),

address_obj address_book_type_array );

 

 

Step 4: Now, create a Materialized View Log.

CREATE MATERIALIZED VIEW LOG

ON address_book WITH PRIMARY KEY;

 

Step 5: Insert some records into your address book table and then commit the transaction.

INSERT INTO address_book

VALUES ('100','Borna','Kaz',

Address_Book_type_array(‘Company Name’, '1576 Dunterry place', 'Orlando','FL, 22101'));

INSERT INTO address_book

VALUES ('200','Dana','Kaz’,

Address_Book_type_array(‘Company Name2’, ‘1299 King Ave.','McLean','VA,  43200'));

COMMIT;

 

Query the address book table.

SELECT id, first_name, last_name, c.address_obj.*

FROM address_book c;

 

Step 5: Connect to SITEA again with a DBA privilege.

CONNECT system/…@SITEA

 

Step 6: Obtain Object ID of created “ADDRESS_BOOK_TYPE” object.

SELECT OWNER, TYPE_OID FROM DBA_TYPES

WHERE TYPE_NAME = 'ADDRESS_BOOK_TYPE';

OWNER TYPE_OID

 

Step 7: Connect to SITEB (Materialized View Site) as the REPLICATOR user.

CONNECT replicator/...@SITEB

 

Step 8: Assuming that the “ADDRESS_BOOK_TYPE_ARRAY” object ID is

‘XXXXXXXXXXXXXXXXXXXXX,’ create the “ADDRESS_BOOK_TYPE_ARRAY” object with the same above object ID.

CREATE OR REPLACE TYPE address_book_type_array OID ‘XXXXXXXXXXXXXXXXXXXXX’ AS VARRAY (3) OF VARCHAR2 (20);

 

Step 9: Now, create a Materialized View that it will be updated as soon as there is any changes on the Master table (ADDRESS_BOOK) by executing refresh procedure.

CREATE MATERIALIZED VIEW address_book_mv

REFRESH FAST AS

SELECT id, first_name, c.address_obj.*

FROM replicator.address_book@SITEA c;

 

Step 10: From now on, any changes in the ADDRESS_BOOK table in the Master Site (SITEA) will be replicated to the SITEB (Materialized View Site) by executing DBMS_MVIEW.REFRESH procedure on the SITEB.

EXECUTE dbms_mview.refresh(‘address_book_mv’,’F’);

 

 

 
 
Google
 
Web web site