Home » SQL & PL/SQL » SQL & PL/SQL » MV Refresh
MV Refresh [message #510941] Wed, 08 June 2011 08:45 Go to next message
ORAGENASHOK
Messages: 240
Registered: June 2006
Location: Chennai
Senior Member
Can i run dbms_mview.refresh inside the plsql procedure and if so can i track the success/failure of refresh for a particular Materialized view?
Re: MV Refresh [message #510942 is a reply to message #510941] Wed, 08 June 2011 08:47 Go to previous messageGo to next message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
>Can i run dbms_mview.refresh inside the plsql procedure and if so can i track the success/failure of refresh for a particular Materialized view?
I give up.
I can.
Can you?


It would be helpful if you followed Posting Guidelines - http://www.orafaq.com/forum/t/88153/0/
Re: MV Refresh [message #511492 is a reply to message #510941] Mon, 13 June 2011 08:05 Go to previous messageGo to next message
jitendra.prakash
Messages: 8
Registered: October 2009
Junior Member
yes ...u can run dbms_mview.refresh inside the procedure and run it in a anonymous block with exception section so that u can track success/failure of mview refresh.
Re: MV Refresh [message #511496 is a reply to message #511492] Mon, 13 June 2011 08:33 Go to previous messageGo to next message
Michel Cadot
Messages: 68757
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Yes, "BlackSwan" can, "u" can, but does "ORAGENASHOK" can?

Regards
Michel
Re: MV Refresh [message #512325 is a reply to message #511496] Sun, 19 June 2011 03:17 Go to previous messageGo to next message
ORAGENASHOK
Messages: 240
Registered: June 2006
Location: Chennai
Senior Member
My MV refresh got failed for the below scenarios.

Our requirment is to create 12 MV in our database that the master tables are in 3 external databases ,here i pasted the 12 MV

And then over the 12 i have to create 4 materialized views with the joins on 12 MV that also pasted here

While refresh i have to track the sucess/failure in one log tbl.

But refresh by procedure i got error for 2 materialized views.

Guide me to resolve this

Error

The value of p_sqlcode is :-12008
The value of p_sqlmsg is :ORA-12008: error in materialized view refresh path
ORA-00600: internal error code, arguments: [qerrm


12 tables are
-------------

CREATE TABLE wf_fielddef
    (fieldid                       NUMBER(10,0) DEFAULT -1  NOT NULL,
    pkgtemplateid                  NUMBER(10,0) DEFAULT -1  NOT NULL,
    fieldtype                      NUMBER(10,0) DEFAULT -1  NOT NULL,
    name                           VARCHAR2(255) DEFAULT ''  NOT NULL,
    displayorder                   NUMBER(10,0) DEFAULT 0  NOT NULL,
    length                         NUMBER(10,0) DEFAULT 0  NOT NULL,
    columnname                     VARCHAR2(255) DEFAULT ''  NOT NULL,
    deleted                        NUMBER(10,0) DEFAULT 0  NOT NULL,
    defaultvalue                   VARCHAR2(255) DEFAULT '' ,
    auditable                      NUMBER(10,0) DEFAULT 0 ,
    searchable                     NUMBER(10,0)
  )
/
CREATE INDEX ie_fielddef ON wf_fielddef
  (
    pkgtemplateid                   ASC
  )
ALTER TABLE wf_fielddef
ADD CONSTRAINT pk_fielddef PRIMARY KEY (fieldid, pkgtemplateid)
/
CREATE TABLE wf_fieldvalue_8
    (pkgid                          NUMBER(10,0),
    col1                           VARCHAR2(55),
    col2                           VARCHAR2(12),
    col3                           VARCHAR2(10),
    col4                           VARCHAR2(40),
    col5                           VARCHAR2(35),
    col6                           VARCHAR2(15),
    col7                           NUMBER(10,0),
    col8                           VARCHAR2(55),
    col9                           NUMBER(10,0),
    col10                          VARCHAR2(15),
    col11                          VARCHAR2(40),
    col12                          DATE,
    col13                          VARCHAR2(12),
    col14                          DATE,
    col15                          VARCHAR2(2),
    col16                          VARCHAR2(25),
    col17                          NUMBER(1,0),
    col18                          NUMBER(1,0),
    col19                          NUMBER(1,0),
    col20                          VARCHAR2(100),
    col21                          NUMBER(1,0),
    col22                          NUMBER(10,0),
    col23                          NUMBER(1,0),
    col24                          VARCHAR2(50),
    col25                          NUMBER(1,0),
    col27                          VARCHAR2(100),
    col29                          VARCHAR2(15),
    col30                          VARCHAR2(80))
/
CREATE INDEX col8_8_indx ON wf_fieldvalue_8
  (
    col8                            ASC
  )
/
CREATE INDEX col30_8_indx ON wf_fieldvalue_8
  (
    col30                           ASC
  )
/
CREATE INDEX pkgid_8_indx ON wf_fieldvalue_8
  (
    pkgid                           ASC
  )
/
CREATE INDEX col1_8_indx ON wf_fieldvalue_8
  (
    col1                            ASC
  )
/
CREATE INDEX col2_8_indx ON wf_fieldvalue_8
  (
    col2                            ASC
  )
/
CREATE INDEX col3_8_indx ON wf_fieldvalue_8
  (
    col3                            ASC
  )
/
CREATE INDEX col4_8_indx ON wf_fieldvalue_8
  (
    col4                            ASC
  )
/
CREATE INDEX col5_8_indx ON wf_fieldvalue_8
  (
    col5                            ASC
  )
/
CREATE INDEX col6_8_indx ON wf_fieldvalue_8
  (
    col6                            ASC
  )
 
/
CREATE INDEX col7_8_indx ON wf_fieldvalue_8
  (
    col7                            ASC
  )
/
CREATE INDEX col9_8_indx ON wf_fieldvalue_8
  (
    col9                            ASC
  )
/
CREATE INDEX col10_8_indx ON wf_fieldvalue_8
  (
    col10                           ASC
  )
/
CREATE INDEX col11_8_indx ON wf_fieldvalue_8
  (
    col11                           ASC
  )
/
CREATE INDEX col12_8_indx ON wf_fieldvalue_8
  (
    col12                           ASC
  )
/
CREATE INDEX col13_8_indx ON wf_fieldvalue_8
  (
    col13                           ASC
  )
/
CREATE INDEX col14_8_indx ON wf_fieldvalue_8
  (
    col14                           ASC
  )
 /
CREATE INDEX col15_8_indx ON wf_fieldvalue_8
  (
    col15                           ASC
  )
 /
CREATE INDEX col16_8_indx ON wf_fieldvalue_8
  (
    col16                           ASC
  )
/
	CREATE TABLE wf_queue
		(pkgrecid                      NUMBER(10,0) DEFAULT -1  NOT NULL,
		pkgid                          NUMBER(10,0) DEFAULT -1  NOT NULL,
		processid                      NUMBER(10,0) DEFAULT -1,
		eventid                        NUMBER(10,0) DEFAULT -1,
		queueid                        NUMBER(10,0) DEFAULT -1,
		userid                         NUMBER(10,0) DEFAULT -1  NOT NULL,
		entrytime                      DATE,
		pkgtemplateid                  NUMBER(10,0) DEFAULT -1,
		indate                         DATE NOT NULL,
		priority                       NUMBER(10,0) DEFAULT 0,
		sentby                         NUMBER(10,0) DEFAULT -1,
		createdate                     DATE NOT NULL,
		creator                        NUMBER(10,0) DEFAULT -1  NOT NULL,
		duedate                        DATE NOT NULL,
		duedatefired                   NUMBER(10,0) DEFAULT 0  NOT NULL,
		decisioneventid                NUMBER(10,0) DEFAULT -1,
		qtype                          NUMBER(10,0) DEFAULT 0,
		toprocessid                    NUMBER(10,0) DEFAULT -1,
		toeventid                      NUMBER(10,0) DEFAULT -1,
		creatorname                    CHAR(255) DEFAULT '',
		servername                     CHAR(255) DEFAULT '',
		thresholdfired                 NUMBER(10,0) DEFAULT 0  NOT NULL,
		collectcount                   NUMBER(10,0) DEFAULT 0,
		threshold1date                 DATE,
		threshold2date                 DATE,
		threshold3date                 DATE,
		returntosender                 NUMBER(10,0) DEFAULT 0)
	/
	CREATE INDEX ie1_queue ON wf_queue
	(
		processid                       ASC,
		queueid                         ASC
	)
	/
	CREATE INDEX ie3_queue ON wf_queue
	(
		pkgid                           ASC 
	)
	/
	CREATE INDEX ie2_queue ON wf_queue
	(
		userid                          ASC
	)
	/
	CREATE INDEX ie4_queue ON wf_queue
	(
		servername                      ASC
	)
	/
	ALTER TABLE wf_queue
	ADD CONSTRAINT pk_queue PRIMARY KEY (pkgrecid)
	)
	/
	CREATE TABLE attachment_families
    (attachment_family_code         VARCHAR2(10) NOT NULL,
    attachment_family_desc          VARCHAR2(35) NOT NULL,
    created_by                      VARCHAR2(35) NOT NULL,
    created_on                      DATE NOT NULL,
    last_updated_by                 VARCHAR2(35) NOT NULL,
    last_updated_on                 DATE NOT NULL)
    /
    ALTER TABLE attachment_families
	ADD CONSTRAINT pk_attachment_families PRIMARY KEY (attachment_family_code)
	/
	CREATE TABLE attachment_status
    (attachment_status_id           NUMBER(2,0) NOT NULL,
    attachment_status_desc         VARCHAR2(35) NOT NULL,
    created_by                     VARCHAR2(35) NOT NULL,
    created_on                     DATE NOT NULL,
    last_updated_by                VARCHAR2(35) NOT NULL,
    last_updated_on                DATE NOT NULL)
    /
    ALTER TABLE attachment_status
	ADD CONSTRAINT pk_attachment_status PRIMARY KEY (attachment_status_id)
	/
	CREATE TABLE attachment_types
    (attachment_type_code           VARCHAR2(10) NOT NULL,
    attachment_type_desc           VARCHAR2(35) NOT NULL,
    attachment_family_code         VARCHAR2(10) NOT NULL,
    created_by                     VARCHAR2(35) NOT NULL,
    created_on                     DATE NOT NULL,
    last_updated_by                VARCHAR2(35) NOT NULL,
    last_updated_on                DATE NOT NULL,
    attachment_type_short_code     VARCHAR2(3))
    /
   CREATE INDEX fk01_attachment_types ON attachment_types
    (
    attachment_family_code          ASC
    )
   /
   ALTER TABLE attachment_types
   ADD CONSTRAINT pk_attachment_types PRIMARY KEY (attachment_type_code)
   /
   ALTER TABLE attachment_types
   ADD CONSTRAINT fk01_attachment_types FOREIGN KEY (attachment_family_code)
   /
   CREATE TABLE employee_attachments
    (employee_attachment_id         NUMBER(30,0) NOT NULL,
    external_attachment_number     NUMBER(3,0) NOT NULL,
    employee_id                    NUMBER(30,0) NOT NULL,
    valid_attachment_type_id       NUMBER(30,0) NOT NULL,
    fein_id                        NUMBER(30,0) NOT NULL,
    payroll_id                     NUMBER(30,0),
    unit_id                        NUMBER(30,0),
    issuing_authority_id           NUMBER(30,0) NOT NULL,
    attachment_status_id           NUMBER(2,0) NOT NULL,
    effective_date                 DATE NOT NULL,
    received_date                  DATE,
    response_date                  DATE,
    attachment_id                  VARCHAR2(6) NOT NULL,
    case_number                    VARCHAR2(35) NOT NULL,
    case_reference                 VARCHAR2(40),
    recipient_name                 VARCHAR2(100),
    jurisdiction_region_code       VARCHAR2(10) NOT NULL,
    recipient_social_security      VARCHAR2(9),
    deduction_group_header_id      NUMBER(30,0) NOT NULL,
    remit_calendar_code            VARCHAR2(10) NOT NULL,
    priority_over_support_flag     VARCHAR2(1) NOT NULL,
    includes_medical_support_flag  VARCHAR2(1) NOT NULL,
    second_family_flag             VARCHAR2(1) NOT NULL,
    arrear_flag                    VARCHAR2(1) NOT NULL,
    sick_workers_comp_flag         VARCHAR2(1) NOT NULL,
    sick_pay_date                  DATE,
    default_pay_deduction_flag     VARCHAR2(1) NOT NULL,
    pay_period_1_flag              VARCHAR2(1) NOT NULL,
    pay_period_2_flag              VARCHAR2(1) NOT NULL,
    pay_period_3_flag              VARCHAR2(1) NOT NULL,
    pay_period_4_flag              VARCHAR2(1) NOT NULL,
    pay_period_5_flag              VARCHAR2(1) NOT NULL,
    do_not_withhold_flag           VARCHAR2(1) NOT NULL,
    withhold_off_cycle_flag        VARCHAR2(1) NOT NULL,
    payment_method_code            NUMBER(10,0),
    remit_days                     NUMBER(3,0),
    remit_date                     DATE,
    fips_code                      VARCHAR2(7),
    child_support_county_name      VARCHAR2(40),
    student_loan_type_ind          VARCHAR2(3),
    start_date                     DATE NOT NULL,
    stop_date                      DATE,
    total_due_amt                  NUMBER(20,2),
    balance_due_amt                NUMBER(20,2),
    release_amt                    NUMBER(20,2),
    deduction_amt                  NUMBER(20,2),
    amt_gross_dispose_ind          VARCHAR2(1),
    deduction_pct                  NUMBER(8,5),
    pct_gross_dispose_ind          VARCHAR2(1),
    deduction_pay_frequency_id     NUMBER(3,0) NOT NULL,
    no_net_pay_flag                VARCHAR2(1) NOT NULL,
    withholding_status_code        VARCHAR2(10),
    number_of_dependents           NUMBER(2,0),
    user_admin_fee_flag            VARCHAR2(1) NOT NULL,
    employer_admin_fee_flag        VARCHAR2(1) NOT NULL,
    admin_fee_amt                  NUMBER(20,2),
    admin_fee_pct                  NUMBER(8,5),
    monthly_limit_amt              NUMBER(20,2),
    total_admin_fee_to_date_amt    NUMBER(20,2),
    employer_setup_fee_flag        VARCHAR2(1) NOT NULL,
    setup_fee_amt                  NUMBER(20,2),
    setup_fee_pct                  NUMBER(8,5),
    total_setup_fee_to_date_amt    NUMBER(20,2),
    issuing_authority_fee_amt      NUMBER(20,2),
    issuing_authority_fee_pct      NUMBER(8,5),
    override_withhold_limit_flag   VARCHAR2(1) NOT NULL,
    exemption_pay_frequency_id     NUMBER(3,0) NOT NULL,
    levy_668w_year                 NUMBER(4,0),
    number_of_levy_exemptions      NUMBER(2,0),
    age_blind_exempt_flag          VARCHAR2(1) NOT NULL,
    additional_exemptions          NUMBER(1,0),
    exempt_amt_gross_dispose_ind   VARCHAR2(1),
    exempt_amt                     NUMBER(20,2),
    exempt_pct_gross_dispose_ind   VARCHAR2(1),
    exempt_pct                     NUMBER(8,5),
    additional_exempt_amt          NUMBER(20,2),
    case_pin                       VARCHAR2(10),
    letter_reference               NUMBER(30,0),
    release_letter_sent_flag       VARCHAR2(1) NOT NULL,
    zero_letter_sent_flag          VARCHAR2(1) NOT NULL,
    created_by                     VARCHAR2(35) NOT NULL,
    created_on                     DATE NOT NULL,
    last_updated_by                VARCHAR2(35) NOT NULL,
    last_updated_on                DATE NOT NULL,
    sps_attachment_id              NUMBER(11,0),
    sps_setup_fee_code             NUMBER(11,0),
    sps_admin_fee_code             NUMBER(11,0),
    sps_ia_fee_code                NUMBER(11,0))
    /
   CREATE UNIQUE INDEX u01_employee_attachments ON employee_attachments
   (
    employee_id                     ASC,
    attachment_id                   ASC
   )
   /
   CREATE INDEX fk01_employee_attachments ON employee_attachments
  (
    jurisdiction_region_code        ASC
  )
  /
  CREATE INDEX fk02_employee_attachments ON employee_attachments
  (
    attachment_status_id            ASC
  )
  /
  CREATE INDEX fk03_employee_attachments ON employee_attachments
  (
    deduction_group_header_id       ASC
  )
  /
  CREATE INDEX fk04_employee_attachments ON employee_attachments
  (
    fips_code                       ASC
  )
  /
  CREATE INDEX fk05_employee_attachments ON employee_attachments
  (
    issuing_authority_id            ASC
  )
  /
  CREATE INDEX fk06_employee_attachments ON employee_attachments
  (
    remit_calendar_code             ASC
  )
  /
  CREATE INDEX fk07_employee_attachments ON employee_attachments
  (
    valid_attachment_type_id        ASC
  )
  /
  CREATE INDEX fk08_employee_attachments ON employee_attachments
  (
    employee_id                     ASC
  )
  /
  CREATE INDEX fk09_employee_attachments ON employee_attachments
  (
    payment_method_code             ASC
  )
  /
  CREATE INDEX fk10_employee_attachments ON employee_attachments
  (
    withholding_status_code         ASC
  )
  /
  CREATE INDEX fk11_employee_attachments ON employee_attachments
  (
    deduction_pay_frequency_id      ASC
  )
  /
  CREATE INDEX fk12_employee_attachments ON employee_attachments
  (
    exemption_pay_frequency_id      ASC
  )
  /
  CREATE INDEX fk13_employee_attachments ON employee_attachments
  (
    fein_id                         ASC
  )
  /
  CREATE INDEX fk14_employee_attachments ON employee_attachments
  (
    unit_id                         ASC
  )
  /
  CREATE INDEX fk15_employee_attachments ON employee_attachments
  (
    payroll_id                      ASC
  )
  /
  CREATE INDEX n01_employee_attachments ON employee_attachments
  (
    letter_reference                ASC
  )
  /
  ALTER TABLE employee_attachments
  ADD CONSTRAINT pk_employee_attachments PRIMARY KEY (employee_attachment_id)
  /
  CREATE OR REPLACE TRIGGER b4iu_employee_attachments
 BEFORE
  INSERT OR UPDATE
 ON employee_attachments
REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW
DECLARE
  invalid_recip_name_value    EXCEPTION;
  invalid_recip_name_length   EXCEPTION;

/******************************************************************************/

FUNCTION getWADPayeeIDCount(pi_wad_payee_id IN varchar2)
RETURN number
IS
  rowcount   number;

BEGIN
  select count(*)
    into rowcount
    from waa_payee
   where wad_payee_id = pi_wad_payee_id;

  return rowcount;
END getWADPayeeIDCount;    

/******************************************************************************/

BEGIN
  if :new.recipient_name is not null
  then
    if :new.recipient_name = :old.recipient_name
    then
      null;  -- do nothing, recipient_name value did not change
    else
      :new.recipient_name := upper(:new.recipient_name);

      if length(:new.recipient_name) <= 9
      then
        if getWADPayeeIDCount(:new.recipient_name) = 0
        then
          RAISE invalid_recip_name_value;
        end if;
      else
        RAISE invalid_recip_name_length;
      end if;
    end if;
  end if;

EXCEPTION
  when invalid_recip_name_value
  then
    raise_application_error(-20001, 'recepient_name (' || :new.recipient_name || ')' || ' is invalid - no matching WAD Payee ID');

  when invalid_recip_name_length
  then
    raise_application_error(-20002, 'recepient_name (' || :new.recipient_name || ')' || ' is limited to 9 characters');
END;
/
CREATE TABLE valid_attachment_types
    (valid_attachment_type_id       NUMBER(30,0) NOT NULL,
    region_code                    VARCHAR2(10) NOT NULL,
    attachment_type_code           VARCHAR2(10) NOT NULL,
    attachment_priority            NUMBER(3,0),
    proration_method_code          VARCHAR2(3),
    rule_only_flag                 VARCHAR2(1) NOT NULL,
    do_not_annualize_flag          VARCHAR2(1) NOT NULL,
    attachment_notes               VARCHAR2(4000),
    created_by                     VARCHAR2(35) NOT NULL,
    created_on                     DATE NOT NULL,
    last_updated_by                VARCHAR2(35) NOT NULL,
    last_updated_on                DATE NOT NULL)
/
CREATE UNIQUE INDEX u01_valid_attachment_types ON sage.valid_attachment_types
  (
    region_code                     ASC,
    attachment_type_code            ASC
  )
/
CREATE INDEX fk01_valid_attachment_types ON valid_attachment_types
  (
    region_code                     ASC
  )
/
CREATE INDEX fk02_valid_attachment_types ON valid_attachment_types
  (
    attachment_type_code            ASC
  )
/
CREATE INDEX fk03_valid_attachment_types ON valid_attachment_types
  (
    proration_method_code           ASC
  )
/
ALTER TABLE valid_attachment_types
ADD CONSTRAINT pk_valid_attachment_types PRIMARY KEY (valid_attachment_type_id)
/

CREATE TABLE wad_detail
    (detail_key                     NUMBER(12,0) NOT NULL,
    lu_ts                          DATE NOT NULL,
    lu_user                        VARCHAR2(8) NOT NULL,
    payroll_key                    NUMBER(12,0) NOT NULL,
    alternate_payee_name           VARCHAR2(30),
    arrears_ind                    VARCHAR2(1),
    case_number                    VARCHAR2(30),
    ccpa_ind                       VARCHAR2(1),
    disbursement_check_dt          DATE,
    disbursement_check_no          NUMBER(10,0),
    disbursement_ind               VARCHAR2(1),
    disposable_income              NUMBER(11,2),
    ds_paycheck_date_offset        NUMBER(2,0),
    ds_apply_threshold_ind         VARCHAR2(1),
    ds_day_of_month                VARCHAR2(2),
    ds_day_of_month_ind            VARCHAR2(1),
    ds_due_on_payday_ind           VARCHAR2(1),
    ds_threshold_amount            NUMBER(11,2),
    employee_address_1             VARCHAR2(30),
    employee_address_2             VARCHAR2(30),
    employee_birth_date            DATE,
    employee_city                  VARCHAR2(30),
    employee_country               VARCHAR2(30),
    employee_first_name            VARCHAR2(25),
    employee_hire_date             DATE,
    employee_id                    VARCHAR2(13),
    employee_last_name             VARCHAR2(35),
    employee_middle_name           VARCHAR2(25),
    employee_phone                 VARCHAR2(10),
    employee_ssn                   VARCHAR2(9),
    employee_state                 VARCHAR2(2),
    employee_zip                   VARCHAR2(10),
    employment_term_ind            VARCHAR2(1),
    employment_term_date           DATE,
    expected_state_fee_amt         NUMBER(11,2),
    expected_wage_ord_amt          NUMBER(11,2),
    fips_code                      VARCHAR2(7),
    frequency                      VARCHAR2(1),
    gross_income                   NUMBER(11,2),
    issuing_county_name            VARCHAR2(22),
    issuing_state                  VARCHAR2(2),
    marital_status                 VARCHAR2(1),
    medical_support_ind            VARCHAR2(1),
    memo1                          VARCHAR2(40),
    memo2                          VARCHAR2(40),
    obligee_first_name             VARCHAR2(25),
    obligee_last_name              VARCHAR2(35),
    obligee_middle_name            VARCHAR2(25),
    obligee_ssn                    VARCHAR2(9),
    payee_address_1                VARCHAR2(30),
    payee_address_2                VARCHAR2(30),
    payee_changed                  VARCHAR2(1),
    payee_city                     VARCHAR2(22),
    payee_id                       VARCHAR2(9),
    payee_name                     VARCHAR2(30),
    payee_state                    VARCHAR2(2),
    payee_zip                      VARCHAR2(9),
    payroll_method                 VARCHAR2(1),
    payroll_type                   VARCHAR2(1),
    reissue_ind                    VARCHAR2(1),
    reprint_ind                    VARCHAR2(1),
    state_fee_amount               NUMBER(11,2),
    support_others_ind             VARCHAR2(1),
    taxes_amount                   NUMBER(11,2),
    type_of_lien                   VARCHAR2(2),
    void_ind                       VARCHAR2(1),
    wage_order_amount              NUMBER(11,2),
    wage_order_fein                VARCHAR2(9),
    disbursement_ach_date          DATE,
    disbursement_ach_ind           VARCHAR2(1),
    ach_entry_detail_key           NUMBER(12,0),
    ach_reissue_ind                VARCHAR2(1),
    control_number                 VARCHAR2(4),
    attachment_id                  VARCHAR2(6),
    post_to_sage_date              DATE,
    due_date                       DATE)
/

CREATE INDEX cts_admin.wad_dtl_pr_key_ix ON cts_admin.wad_detail
  (
    payroll_key                     ASC
  )
/
ALTER TABLE cts_admin.wad_detail
ADD CONSTRAINT pk_wad_detail PRIMARY KEY (detail_key)
/	
CREATE TABLE cts_admin.wad_payee
    (payee_id                       VARCHAR2(9) NOT NULL,
    lu_ts                          DATE NOT NULL,
    lu_user                        VARCHAR2(8) NOT NULL,
    payee_name                     VARCHAR2(30) NOT NULL,
    contact_name                   VARCHAR2(30),
    contact_phone                  VARCHAR2(10),
    contact_phone_ext              VARCHAR2(6),
    contact_fax                    VARCHAR2(15),
    contact_email                  VARCHAR2(30),
    contact_address_1              VARCHAR2(30),
    contact_address_2              VARCHAR2(30),
    contact_city                   VARCHAR2(30),
    contact_state                  VARCHAR2(2),
    contact_zip                    VARCHAR2(9),
    bank_account_number            VARCHAR2(17) NOT NULL,
    bank_routing_number            VARCHAR2(9) NOT NULL,
    bank_id                        VARCHAR2(2),
    effective_date                 DATE NOT NULL)
/
ALTER TABLE cts_admin.wad_payee
ADD CONSTRAINT pk_wad_payee PRIMARY KEY (payee_id)
/
CREATE TABLE cts_admin.wad_payroll
    (payroll_key                    NUMBER(12,0) NOT NULL,
    lu_ts                          DATE NOT NULL,
    lu_user                        VARCHAR2(8) NOT NULL,
    bank_acct_changed              VARCHAR2(1),
    bank_routing_changed           VARCHAR2(1),
    client_id                      VARCHAR2(8),
    coll_client_key                VARCHAR2(14),
    disbursement_check_dt          DATE,
    disbursement_ind               VARCHAR2(1),
    dup_fix_ind                    VARCHAR2(1),
    earnings_date_from             DATE,
    earnings_date_to               DATE,
    employer_address_1             VARCHAR2(35),
    employer_address_2             VARCHAR2(35),
    employer_bank_account          VARCHAR2(17),
    employer_bank_routing          NUMBER(9,0),
    employer_bank_name             VARCHAR2(30),
    employer_city                  VARCHAR2(30),
    employer_fein                  VARCHAR2(9),
    employer_name                  VARCHAR2(40),
    employer_phone                 VARCHAR2(10),
    employer_state                 VARCHAR2(2),
    employer_zip                   VARCHAR2(10),
    file_creation_ts               DATE,
    file_receipt_ts                DATE,
    file_type                      VARCHAR2(1),
    funding_key                    NUMBER(12,0),
    funds_collection_ind           VARCHAR2(1),
    funds_collection_ts            DATE,
    incoming_file_name             VARCHAR2(30),
    loaded_ts                      DATE,
    paycheck_date                  DATE,
    pay_period                     VARCHAR2(4),
    pay_period_suffix              VARCHAR2(1),
    payroll_amount                 NUMBER(11,2),
    reissue_ind                    VARCHAR2(1),
    reprint_ind                    VARCHAR2(1),
    return_item_code               VARCHAR2(2),
    return_item_ts                 DATE,
    disbursement_ach_date          DATE,
    disbursement_ach_ind           VARCHAR2(1),
    ach_reissue_ind                VARCHAR2(1),
    non_auto_ind                   VARCHAR2(1),
    sage_disbursement_ind          VARCHAR2(1) DEFAULT 'N'  NOT NULL)
/
CREATE INDEX cts_admin.wad_inc_file_name ON cts_admin.wad_payroll
  (
    incoming_file_name              ASC
  )
/
ALTER TABLE cts_admin.wad_payroll
ADD CONSTRAINT pk_wad_payroll PRIMARY KEY (payroll_key)
/
ALTER TABLE cts_admin.wad_payroll
ADD CONSTRAINT wad_payroll_c01 CHECK (sage_disbursement_ind IN ('Y','N'))
/
CREATE TABLE employees
    (employee_id                    NUMBER(30,0) NOT NULL,
    fein_id                        NUMBER(30,0) NOT NULL,
    external_employee_id           VARCHAR2(15) NOT NULL,
    active_flag                    VARCHAR2(1) NOT NULL,
    last_name                      VARCHAR2(20) NOT NULL,
    first_name                     VARCHAR2(15) NOT NULL,
    middle_name                    VARCHAR2(15),
    suffix                         VARCHAR2(4),
    social_security                VARCHAR2(9) NOT NULL,
    gender                         VARCHAR2(1) NOT NULL,
    location_address               VARCHAR2(22),
    delivery_address               VARCHAR2(22),
    city                           VARCHAR2(35),
    state_code                     VARCHAR2(2),
    postal_code                    VARCHAR2(10),
    birth_date                     DATE,
    employment_date                DATE,
    separation_date                DATE,
    work_state_code                VARCHAR2(2),
    officer_flag                   VARCHAR2(1) NOT NULL,
    officer_code                   VARCHAR2(1),
    title                          VARCHAR2(20),
    seasonal_employee_flag         VARCHAR2(1) NOT NULL,
    hourly_salary_flag             VARCHAR2(1) NOT NULL,
    usa_citizen_flag               VARCHAR2(1) NOT NULL,
    foreign_state                  VARCHAR2(23),
    foreign_postal_code            VARCHAR2(15),
    country_code                   VARCHAR2(10),
    created_by                     VARCHAR2(35) NOT NULL,
    created_on                     DATE NOT NULL,
    last_updated_by                VARCHAR2(35) NOT NULL,
    last_updated_on                DATE NOT NULL,
    payroll_id                     NUMBER(30,0),
    unit_id                        NUMBER(30,0),
    pay_frequency_id               NUMBER(3,0),
    deduction_group_header_id      NUMBER(30,0),
    contractor_flag                VARCHAR2(1),
    new_hire_state_of_hire         VARCHAR2(2),
    new_hire_status_code           VARCHAR2(1),
    new_hire_ins_available         VARCHAR2(1) DEFAULT 'N',
    new_hire_ins_qualify_date      DATE,
    new_hire_salary                NUMBER(14,2),
    new_hire_branch_code           VARCHAR2(3),
    work_address_line1             VARCHAR2(35),
    work_address_line2             VARCHAR2(35),
    work_address_city              VARCHAR2(25),
    work_address_state             VARCHAR2(2),
    work_address_zip               VARCHAR2(10),
    county                         VARCHAR2(25),
    psd                            VARCHAR2(5)
)
/
CREATE INDEX fk02_employees ON employees
  (
    unit_id                         ASC
  )
/
CREATE INDEX fk03_employees ON employees
  (
    pay_frequency_id                ASC
  )
/
CREATE INDEX fk04_employees ON employees
  (
    deduction_group_header_id       ASC
  )
/
CREATE UNIQUE INDEX unc1_employees ON employees
  (
    fein_id                         ASC,
    external_employee_id            ASC
  )
/
CREATE INDEX fk01_employees ON employees
  (
    payroll_id                      ASC
  )
/
ALTER TABLE employees
ADD CONSTRAINT employee_officer_flag CHECK (OFFICER_FLAG IN ('Y', 'N'))
/
ALTER TABLE employees
ADD CONSTRAINT pk_employees PRIMARY KEY (employee_id)
/
ALTER TABLE employees
ADD CONSTRAINT employee_active_flag CHECK (ACTIVE_FLAG IN ('Y', 'N'))
/
ALTER TABLE employees
ADD CONSTRAINT employee_gender CHECK (GENDER IN ('M', 'F'))
/
ALTER TABLE employees
ADD CONSTRAINT employee_season_emp_flag CHECK (SEASONAL_EMPLOYEE_FLAG IN ('Y', 'N'))
/
ALTER TABLE employees
ADD CONSTRAINT employee_usa_citizen_flag CHECK (USA_CITIZEN_FLAG IN ('Y', 'N'))
/
ALTER TABLE employees
ADD CONSTRAINT employee_hourly_salary_flag CHECK (HOURLY_SALARY_FLAG IN ('H', 'S'))
/



Log Table and MV list tables
----------------------------
create table odb_mv_log_tbl
(  mv_name varchar2(100),
   description varchar2(100),
   refresh_status varchar2(100),
   refresh_date   date
)
/
create table odb_mv_name_list
(
  mv_name varchar2(100),
  mv_lst_rfs date
)
/
insert into odb_mv_name_list values ('WGA_ODB_WF_FIELDVALUE_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_WF_QUEUE_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_EMPLOYEES_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_EMPLOYEE_ATT_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_VALID_ATT_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_ATTACHMENT_TYP_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_ATTACHMENT_FMLY_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_ATTACHMENT_STAT_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_ISSUING_AUTH_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_WAD_DETAIL_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_WAD_PAYEE_MV')
/
insert into odb_mv_name_list values ('WGA_ODB_WAD_PAYROLL_MV')
/
commit
/


12 MV Logs
---------


CREATE MATERIALIZED VIEW LOG ON wf_queue with (pkgid)
/
CREATE MATERIALIZED VIEW LOG ON WF_FIELDVALUE_8
/
CREATE MATERIALIZED VIEW LOG ON EMPLOYEES
/
CREATE MATERIALIZED VIEW LOG ON EMPLOYEE_ATTACHMENTS
/
CREATE MATERIALIZED VIEW LOG ON VALID_ATTACHMENT_TYPES
/
CREATE MATERIALIZED VIEW LOG ON ATTACHMENT_TYPES
/
CREATE MATERIALIZED VIEW LOG ON ATTACHMENT_FAMILIES
/
CREATE MATERIALIZED VIEW LOG ON ATTACHMENT_STATUS
/
CREATE MATERIALIZED VIEW LOG ON ISSUING_AUTHORITIES
/
CREATE MATERIALIZED VIEW LOG ON WAD_DETAIL
/
CREATE MATERIALIZED VIEW LOG ON WAD_PAYEE
/
CREATE MATERIALIZED VIEW LOG ON WAD_PAYROLL
/


12 MV
-------

CREATE MATERIALIZED VIEW WGA_ODB_WF_QUEUE_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from WF_QUEUE@stl_link
/
CREATE MATERIALIZED VIEW WGA_ODB_WF_FIELDVALUE_MV
BUILD IMMEDIATE
REFRESH WITH ROWID
AS select * FROM WF_FIELDVALUE_8@stl_link
/
create materialized view WGA_ODB_EMPLOYEES_MV
BUILD IMMEDIATE
REFRESH WITH ROWID
AS select * from employees@stl_link
/
create materialized view WGA_ODB_EMPLOYEE_ATT_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from EMPLOYEE_ATTACHMENTS@stl_link
/
create materialized view WGA_ODB_VALID_ATT_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from VALID_ATTACHMENT_TYPES@stl_link   
/
create materialized view WGA_ODB_ATTACHMENT_TYP_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from ATTACHMENT_TYPES@stl_link     
/
create materialized view WGA_ODB_ATTACHMENT_FMLY_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from ATTACHMENT_FAMILIES@stl_link
/  
create materialized view WGA_ODB_ATTACHMENT_STAT_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from ATTACHMENT_STATUS@stl_link   
/  
create materialized view WGA_ODB_ISSUING_AUTH_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from ISSUING_AUTHORITIES@stl_link
/
create materialized view WGA_ODB_WAD_DETAIL_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from WAD_DETAIL@stl_link
/
create materialized view WGA_ODB_WAD_PAYEE_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from WAD_PAYEE@stl_link
/
create materialized view WGA_ODB_WAD_PAYROLL_MV
BUILD IMMEDIATE
REFRESH FAST
AS select * from   WAD_PAYROLL@stl_link
/


4 MV on 12 MV
---------------
create materialized view WGA_ODB_VALID_ATT_Q1_MV
BUILD IMMEDIATE
REFRESH COMPLETE
AS 
select 
a.pkgrecid,
COL10  "Order Action",
DUEDATE  "Date Processed",
COL7  "FEIN",
COL6 "Employee ID",
COL8 "Employee Name",
COL9  "SSN",
COL15 "State",
COL11  "Order Type",
INDATE  "Received Date",
COL5  "Case Number"
--c.valid_attachment_type_id,
--h.attachment_type_code,
--g.payee_id
from    WGA_ODB_WF_QUEUE_MV a,
        WGA_ODB_WF_FIELDVALUE_MV b,
        WGA_ODB_EMPLOYEE_ATT_MV c,
        WGA_ODB_ISSUING_AUTH_MV f ,
        WGA_ODB_VALID_ATT_MV h ,
        WGA_ODB_ATTACHMENT_TYP_MV e,
        WGA_ODB_WAD_DETAIL_MV g ,
        WGA_ODB_WAD_PAYEE_MV d
where  a.pkgrecid = b.pkgid and 
       b.col6 = to_char(c.employee_id) and
       c.issuing_authority_id = f.issuing_authority_id and
       c.valid_attachment_type_id = h.valid_attachment_type_id and
       h.attachment_type_code = e.attachment_type_code and 
       b.col6 = g.employee_id and 
       to_char(c.employee_id) = g.employee_id  and
       g.payee_id = d.payee_id
/
create materialized view WGA_ODB_VALID_ATT_Q2_MV
BUILD IMMEDIATE
REFRESH COMPLETE
AS select b.COL11 "Order Type",
          b. COL7 "FEIN",
          b.COL6 "Employee ID",
          b. COL8 "Employee Name",
          b.COL9 "SSN", 
          b.COL15  "State", 
          b.COL5 "Case Number", 
          i.ATTACHMENT_FAMILY_DESC  "AttachmentFamily",
          h.ATTACHMENT_TYPE_DESC "GarnID",
          e.ISSUING_AUTHORITY_NAME  "Issuing Authority",
          PAYEE_NAME "Payee Name",
          PAYEE_ID  "Payee Number",
          EFFECTIVE_DATE  "Effective Date",
          DEDUCTION_AMT  "Deduction Amount",
          DEDUCTION_PCT  "Deduction Percent",
          ATTACHMENT_STATUS_DESC  "Order Status",
          c.DEDUCTION_PAY_FREQUENCY_ID "Deduction Frequency",
          CASE_REFERENCE "Case Reference",
          c.FIPS_CODE  "FIPS Code",
          START_DATE  "Attachment Start Date",
          STOP_DATE  "Attachment Stop Date",
          --NEW_HIRE_STATUS_CODE  "Employee Status",
          --SEPARATION_DATE  "Final Separation Date",
          c.EXEMPTION_PAY_FREQUENCY_ID "EE Pay Frequency",
          d.DISBURSEMENT_CHECK_DT "CheckNumber",
          WAGE_ORDER_AMOUNT "Amount",
          DUEDATE "Date Processed",
          a.INDATE  "Received Date"        
from     WGA_ODB_WF_QUEUE_MV a,
         WGA_ODB_WF_FIELDVALUE_MV b ,
         WGA_ODB_EMPLOYEE_ATT_MV c,
         WGA_ODB_WAD_DETAIL_MV d,
         WGA_ODB_ISSUING_AUTH_MV e,
         WGA_ODB_ATTACHMENT_STAT_MV f,
         WGA_ODB_VALID_ATT_MV g,
         WGA_ODB_ATTACHMENT_TYP_MV h,
         WGA_ODB_ATTACHMENT_FMLY_MV i
  where a.pkgrecid = b.pkgid and
        b.col6 = c.employee_id and
        b.col6 = d.employee_id and
        c.issuing_authority_id = e.issuing_authority_id and
        c.attachment_status_id = f.attachment_status_id and
        c.employee_id = d.employee_id and
        c.valid_attachment_type_id = g.valid_attachment_type_id and
        g.attachment_type_code = h.attachment_type_code and
        h.attachment_family_code = i.attachment_family_code
/
create materialized view WGA_ODB_VALID_ATT_Q3_MV
BUILD IMMEDIATE
REFRESH COMPLETE
AS select 
COL10  "Order Action",
DUEDATE "Date Processed",
COL7  "FEIN",
COL6  "Employee ID",
COL8  "Employee Name",
COL9  "SSN",
COL15  "State",
COL11  "Order Type",
INDATE  "Received Date",
COL5  "Case Number",
c.EFFECTIVE_DATE  "Effective Date",
e.ATTACHMENT_TYPE_CODE  "Garn ID",
g.PAYEE_NAME  "Payee Name",
g.PAYEE_ID  "Payee Number",
CASE_REFERENCE  "Case Reference",
c.FIPS_CODE  "FIPS Code",
START_DATE  "Attachment Start Date",
STOP_DATE  "Attachment Stop Date",
ISSUING_AUTHORITY_NAME  "Issuing Authority"
--IsReccurring  "Reccurring"
from    WGA_ODB_WF_QUEUE_MV a,
        WGA_ODB_WF_FIELDVALUE_MV b,
        WGA_ODB_EMPLOYEE_ATT_MV c,
        WGA_ODB_ISSUING_AUTH_MV d,
        WGA_ODB_VALID_ATT_MV e,
        WGA_ODB_ATTACHMENT_TYP_MV f,
        WGA_ODB_WAD_DETAIL_MV g,
        WGA_ODB_WAD_PAYEE_MV h
where a.pkgrecid = b.pkgid and
        b.col6= c.employee_id and
        c.issuing_authority_id = d.issuing_authority_id and
        c.valid_attachment_type_id = e.valid_attachment_type_id and
        e.attachment_type_code = f.attachment_type_code and
        b.col6 = g.employee_id and
        c.employee_id = g.employee_id and
        g.payee_id = h.payee_id
/
create materialized view WGA_ODB_VALID_ATT_Q4_MV
BUILD IMMEDIATE
REFRESH COMPLETE
AS select  
--COL10  "Order Action",
WAGE_ORDER_FEIN  "FEIN",
d.EMPLOYEE_ID  "Employee ID",
EMPLOYEE_FIRST_NAME  "Employee First Name",
EMPLOYEE_MIDDLE_NAME  "Employee MiddleName",
EMPLOYEE_LAST_NAME  "EmployeeLast Name",
EMPLOYEE_SSN  "SSN",
d.CASE_NUMBER  "Case Number",
f.ATTACHMENT_TYPE_DESC  "Order Type",
e.ATTACHMENT_TYPE_Code  "Garn ID",
a.PAYEE_NAME  "Payee Name",
a.PAYEE_ID  "Payee Number",
PAY_PERIOD  "Pay Period",
PAYCHECK_DATE  "Pay Check Date",
a.DISBURSEMENT_CHECK_DT  "Disp Date",
WAGE_ORDER_AMOUNT  "Amount",
DISBURSEMENT_CHECK_NO  "Check Number",
d.PAYMENT_METHOD_CODE  "PaymentType",
PAYEE_ADDRESS_1  "PayeeAddress1",
PAYEE_ADDRESS_2  "PayeeAddress2",
PAYEE_CITY  "Payeecity",
PAYEE_STATE  "PayeeState",
PAYEE_ZIP  "PayeeZip"
     from  WGA_ODB_WAD_DETAIL_MV a,
           WGA_ODB_WAD_PAYEE_MV b,
           WGA_ODB_WAD_PAYROLL_MV c,
           WGA_ODB_EMPLOYEE_ATT_MV d,
           WGA_ODB_VALID_ATT_MV e,
           WGA_ODB_ATTACHMENT_TYP_MV f  
where   a.payee_id =b.payee_id and
        a.payroll_type = c.payroll_key and
        a.employee_id =  d.employee_id and
        d.valid_attachment_type_id = e.valid_attachment_type_id and
        f.attachment_type_code = e.attachment_type_code


Refresh Procedure
------------------
create or replace procedure pro_mv_call
as
cursor cur_mv_tbl is select * from odb_mv_name_list;
--a_sqlcode varchar2(100);
--a_sqlmsg  varchar2(100);
Begin

For i in cur_mv_tbl loop

    pr_odb_mvrefresh(i.mv_name,a_sqlcode,a_sqlmsg);   

End Loop;

Exception
when others then
   null;
End;
/
create or replace procedure pr_odb_mvrefresh(v_mv_name varchar2,p_sqlcode out varchar2,p_sqlmsg out varchar2)
is
PRAGMA AUTONOMOUS_TRANSACTION;

Begin

         dbms_mview.refresh(v_mv_name,'F');

         insert into odb_mv_log_tbl values (v_mv_name,'Desc','S',sysdate,null,null);
         commit;                               

Exception

when others then

dbms_output.put_line('Inside the exception');
     Declare
     vv_sql_code varchar2(100);
     vv_sql_msg  varchar2(100);     
     
     Begin
         
      dbms_output.put_line('Inside the Begin');
  
      dbms_mview.refresh(v_mv_name,'C');
       
     Exception    
     when others then
     
      dbms_output.put_line('Inside the Begin Exception');
           
      vv_sql_code := SQLCODE;
      vv_sql_msg  := substr(SQLERRM,1,100);              
                   
      insert into odb_mv_log_tbl values (v_mv_name,'Desc','F',sysdate,null,null);     
      commit;     
      
      p_sqlcode := vv_sql_code;
      p_sqlmsg  := vv_sql_msg;
      dbms_output.put_line('Inside the Begin Exception End');      
            dbms_output.put_line('The value of p_sqlcode is :' ||p_sqlcode);      
                  dbms_output.put_line('The value of p_sqlmsg is :'|| p_sqlmsg);      
      
     End;
      dbms_output.put_line(' End');    
End;


[Updated on: Sun, 19 June 2011 03:23]

Report message to a moderator

Re: MV Refresh [message #512352 is a reply to message #512325] Sun, 19 June 2011 12:58 Go to previous messageGo to next message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
>ORA-00600: internal error code, arguments:

ORA-00600/ORA-07445/ORA-03113 = Oracle bug => search on Metalink and/or call Oracle support
Re: MV Refresh [message #512383 is a reply to message #512352] Mon, 20 June 2011 00:14 Go to previous messageGo to next message
ORAGENASHOK
Messages: 240
Registered: June 2006
Location: Chennai
Senior Member
It means i cant understand this error for why?
Re: MV Refresh [message #512386 is a reply to message #512383] Mon, 20 June 2011 01:14 Go to previous messageGo to next message
Michel Cadot
Messages: 68757
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
There is nothing to understand, ORA-600 is an Oracle bug.

Regards
Michel
Re: MV Refresh [message #512398 is a reply to message #512386] Mon, 20 June 2011 02:50 Go to previous messageGo to next message
ORAGENASHOK
Messages: 240
Registered: June 2006
Location: Chennai
Senior Member
The solution you gave me is not clear, please give me a right path to resolve this.
Re: MV Refresh [message #512399 is a reply to message #512398] Mon, 20 June 2011 03:03 Go to previous message
Michel Cadot
Messages: 68757
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
There is no solution, the right path to resolve it is:

Quote:
search on Metalink and/or call Oracle support


Regards
Michel
Previous Topic: how to delete 1% of rows from a table (merged 4)
Next Topic: how to see select stmt written for creation of meterialized view
Goto Forum:
  


Current Time: Fri Apr 25 23:48:23 CDT 2025