Skip to main content

Trigger-Cursor example


CREATE OR REPLACE TRIGGER LOG_AUDIT_TRIGGER AFTER
  INSERT OR UPDATE ON DEV2_APP.CASES   --table name on which u want to fire a trigger
  REFERENCING OLD AS OLD NEW AS NEW
  FOR EACH ROW
    --WHEN (new.case_status_code<>old.case_status_code)
  DECLARE                                                            -- variable declaration
    n_status VARCHAR2(5) ;
    o_status varchar2(5);
  --n_status_reason varchar2(50) ;
  n_modified_date DATE;
  n_modified_user VARCHAR2(20);
  o_caseId          VARCHAR2(20);
  l_changeid      NUMBER;
-- curser body or defination
  CURSOR c_getmax_changeid(caseid VARCHAR2,field_name VARCHAR2)
  IS
    SELECT MAX(CA.change_id) AS maxChangeId
    FROM DEV2_APP.case_audit_log CA
    WHERE CA.CASE_ID  =caseid
    AND CA.FIELD_NAME=field_name;
BEGIN     -- begin of trigger body or defination
  n_status:=:new.CASE_STATUS_CODE;
  o_status:=:old.CASE_STATUS_CODE;
  n_modified_date:=sysdate;
  n_modified_user:='SSK';
  o_caseId:=:old.CASE_ID;
  l_changeid:=0;
  IF n_status<>o_status THEN
  FOR rec IN c_getmax_changeid(o_caseId,'CASE_STATUS_CODE')
    LOOP
      l_changeid:=NVL(rec.maxChangeId,0);
    END LOOP;
    l_changeid:=l_changeid+1;
    INSERT
    INTO DEV2_APP.case_audit_log(AUDIT_LOG_ID,CASE_ID,CHANGE_ID,TABLE_NAME,FIELD_NAME,FIELD_VALUE,CREATED_USER,CREATED_DTTM,VERSION_ID)
      VALUES(case_audit_log_ID_Q.nextval,o_caseId,l_changeid,'CASES','CASE_STATUS_CODE',n_status,n_modified_user,n_modified_date,1);
  END IF;
END;


Comments

Popular posts from this blog

The file store "WLS_DIAGNOSTICS" could not be opened

WLS_DIAGNOSTIC ERROR weblogic.store.PersistentStoreException: [Store:280073]The file store "WLS_DIAGNOSTICS" could not be opened because it contained a file with the invalid version 1. A file of version 2 was expected. When you get this error while running your application on internal weblogic server delete the following file WLS_DIAGNOSTICS000000.DAT search the file in following path C:\jdev_work\system11.1.1.5.37.60.13\DefaultDomain this file is in DefaultDomain folder of your jdev. and delete the WLS_DIAGNOSTICS000000.DAT file . and run your applicatuon

Passivation and Activation in ADF (Application Module )

1. For performance reasons, ADF keeps a pool of application modules in memory. It tries to give each session the same application module as the session used during the last request; however, this might not be possible during peak load of your application. 2. In this case, ADF saves the application modules state in a database table so the application module can be used by another session. This is called passivation . 3. When the first session needs the application module again, its state is retrieved from the database process known as activation . 4. If you have made an error in your code and depend on some variable that is not persisted correctly when your application module state is stored, you will experience mysterious errors under high load.   Enable/Disable Application Module Pooling : Right-click on your application module, choose Configurations.By default, each application module has two configurations. Ensure that the one ending in …Local is selected and then c...

Overview Editor for bc4j.xcfg

This is used to customize the configuration settings for the application pool, connection pool, and transactions. Select the Application Module, then select a configuration from the Configurations list. You can specify a Default Configuration from the dropdown to use with selected application module. Edit the name of the configuration in Details. Its having 3 tabs 1.Database and Scalability 2. Properties 3. Custom Properties Database and Scalability Tab : In Database and Scalability you can mention the JDBC data source definition for each application module. You can choose to connect to a JDBC data source or to a JDBC URL.The default connection type is the default data source. A data source is a vendor-independent encapsulation of a database server connection on the application server. 1. Data sources ( JNDI name) offer advantages over a JDBC URL connection because the data source can be tuned, reconfigured, or remapped without changing the deployed application. 2. JDB...