Problem with a trigger

I have a problem with a very simple trigger:
CREATE OR REPLACE TRIGGER contratos_factuali
AFTER UPDATE OF descrip,fautori,origpeso,origdls,
montopeso,montodls,aant,aact,fifiobserva,pedsap
ON ulises.contratos
FOR EACH ROW
BEGIN
UPDATE contratos SET factuali=TO_DATE(SYSDATE,'DD/MM/YYYY HH24:MI')
WHERE ncontra=:NEW.ncontra;
COMMIT;
END;This trigger update the column 'factuali' of this table everytime any other column of this table is updated. But returns me an error:
SQL> update contratos set montodls=1 where ncontra='ODPS-086/00';
update contratos set montodls=1 where ncontra='ODPS-086/00'
ERROR at line 1:
ORA-04091: table ULISES.CONTRATOS is mutating, trigger/function may not see it
ORA-06512: at "ULISES.CONTRATOS_FACTUALI", line 2
ORA-04088: error during execution of trigger 'ULISES.CONTRATOS_FACTUALI'What's happening?

(1) You cannot use DML to update the table on which the trigger is based. Think about it: your trigger fires on UPDATE so each time fires, it updates the table and fires again. This is what is known as mutation.
What you should do is create a trigger that executes BEFORE the update and simply do
:NEW.factuali := SYSDATE;
If ncontra is not a unique column and you genuinely want all rows of the same value to have the same factuali timestamp, well, it's very difficult, indeed I don't think it can be done. You could try submitting a DBMS_JOB to do the update, passing in the factuali value as a parameter; that DBMS_JOB would have to disable the trigger before doing the update (to prevent the recursion) and then re-enable it afterwards. Which seems like a lot of work: are you sure your design is correct?
(2) You don't need the commit statement: the triggere exectutes within the commit phase of the original update.
HTH, APC

Similar Messages

  • Problem with this trigger

    Hello, I am new to Oracle and I am having problems with this trigger:
    CREATE OR REPLACE TRIGGER myTrigger
    AFTER INSERT OR UPDATE OF aField ON myTable
    DECLARE
    myVariable NUMBER(2);
    BEGIN
    SELECT COUNT(keyColumn) INTO myVariable
    FROM myTable
    WHERE TO_CHAR(myTableDate,'mm') = (SELECT TO_CHAR(SYSDATE,'mm') FROM DUAL);
    IF myVariable > 4 THEN
    RAISE_APPLICATION_ERROR(20605, 'Here is an error.')
    END IF;
    END;
    Every time the trigger is executed, this error happens:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at line 10
    How do I resolve this problem?
    Thank you.

    Hi,
    user12120979 wrote:
    Hello, I am new to Oracle and I am having problems with this trigger:
    CREATE OR REPLACE TRIGGER myTrigger
    AFTER INSERT OR UPDATE OF aField ON myTable
    DECLARE
    myVariable NUMBER(2);
    BEGIN
    SELECT COUNT(keyColumn) INTO myVariable
    FROM myTable
    WHERE TO_CHAR(myTableDate,'mm') = (SELECT TO_CHAR(SYSDATE,'mm') FROM DUAL);
    IF myVariable > 4 THEN
    RAISE_APPLICATION_ERROR(20605, 'Here is an error.')
    END IF;
    END;
    Every time the trigger is executed, this error happens:
    ORA-06502: PL/SQL: numeric or value error: number precision too large
    ORA-06512: at line 10
    How do I resolve this problem?
    Thank you.Are you sure the code you posted is what's actually running?
    I would expect the missing semicolon after:
    RAISE_APPLICATION_ERROR(20605, 'Here is an error.')to keep this from even compiling.
    Error numbers are supposed to be negative. That will cause a run-time error when you try to raise the error.
    This isn't actually an error, but there's rarely a need to use dual in PL/SQL.
    WHERE TO_CHAR(myTableDate,'mm') = (SELECT TO_CHAR(SYSDATE,'mm') FROM DUAL);can also be done this way:
    WHERE TO_CHAR(myTableDate,'mm') = TO_CHAR(SYSDATE,'mm');Actually, the condition above would work even outside of PL/SQL.

  • A problem with plsql trigger in my form

    i created two text field and a button(insert) to take the value of the text feild at run time and insert it in the table
    this is my procedure
    CREATE OR REPLACE PROCEDURE insert_value
    (brn_id_in_p IN branch.brn_id%TYPE,
    brn_name_in_p IN branch.brn_name%TYPE)
    IS
    BEGIN
    INSERT INTO branch (brn_id,brn_name)
    VALUES (brn_id_in_p, brn_name_in_p);
    END insert_value;
    and in the form button trigger (when button pressed ) i wrote this
    EXECUTE insert_value(:BRANCH.BRN_ID_TF,:BRANCH.BRN_NAME_TF);
    but it gave me plsql error but i dont know why?
    note BRANCH is the datablock name and BRN_ID_TF,BRN_NAME_TF is the name of the items

    Only write
    insert_value(:BRANCH.BRN_ID_TF,:BRANCH.BRN_NAME_TF);
    and then give me the error which is prompted...
    another problem may occur with the data type which you declared in the properties of the text items
    :BRANCH.BRN_ID_TF and :BRANCH.BRN_NAME_TF
    in your forms.

  • Why would connection pooling cause problems with a trigger?

    This is a strange one. We have an app that deletes a row in a database table, and this table has a delete trigger on it. The row gets deleted every time the app is run, yet the trigger only fires intermittently. It's not that the trigger is failiing in some way - it just doesn't get called at all. If I issue the same delete command in PL/SQL developer then the trigger fires every time.
    Several hours later and out of desparation I tried turning off connection pooling via the app's connection string, and found that the trigger now fires every time. Any ideas what might be causing this behaviour? I can reproduce/fix the issue every time simply by setting "Pooling" to true or false!
    We are using Oracle 11g and ODP.Net v4.112.2.0.
    Thanks in advance
    Andrew

    More information: I've now been able to reproduce this issue in a small .Net app, and can make it fail in a more consistent manner (which I'll explain later). While it's still too large to post the entire code here, I can summarise what the app does in pseudo-code:-
    for(int i = 1; i <= 10; i++) // Run the test a number of times
    // Step 1 - Delete rows from the table with the delete query in question
    Execute non-query "delete from test_table";
    Wait 1 second
    // Step 2 - Check that the delete actually happened
    Execute reader "select count(*) from test_table"
    Display the count
    // Step 3 - Check that the delete trigger inserted some rows into a "logging" table. This is my method of "tracing" - I added a basic insert to the start of each trigger section, as mentioned in my previous post.
    Execute reader "select count(*) from my_logging_table"
    Display the count
    // Reinstate the test data
    Execute non-query "<insert rows back into test_table>"
    Wait 1 second
    For info the connection string is fairly basic:- "Data Source=<tns name>;User Id=<foo>;Password=<bar>"
    Some points of interest:-
    - When running the above test app, the trigger successfully fires on the very first iteration (i.e. "Step 3" displays a non-zero count from the logging table). All subsequent iterations fail ("Step 3" displays the same count each time).
    - If I turn off connection pooling (by adding "Pooling=false" to the connection string), the trigger runs on every iteration (i.e. "Step 3" displays an ever-incrementing record count).
    - Regardless of whether it works or fails, the deletion in step 1 does take place (confirmed by "Step 2" displaying a count of zero).
    - I added the waits after the non-query calls to see if that made a difference, but it doesn't. I can change these to 10 seconds or more and it will have no effect on the issue.
    The "Execute non-query" method uses code along these lines:-
    using (var conn = new OracleConnection(ConnString))
    conn.Open();
    using (var cmd = conn.CreateCommand())
    cmd.CommandText = sql;
    cmd.CommandType = CommandType.Text;
    result = cmd.ExecuteNonQuery();
    conn.Close();
    return result;
    While the "Execute reader" method looks like this:-
    var conn = new OracleConnection(ConnString);
    conn.Open();
    var cmd = conn.CreateCommand();
    cmd.CommandText = sql;
    cmd.CommandType = CommandType.Text;
    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
    The calling code in the for loop, wraps the returned reader in a using clause like this:-
    using (var reader = ExecuteReader("<sql>"))
    This will dispose of the reader, which will in turn close/dispose the connection (due to the CommandBehavior.CloseConnection parameter passed to ExecuteReader).
    Interestingly, if the reader isn't disposed of then the problem becomes more intermittent (the trigger will fire perhaps 25% of the time). This is what's happening in our unit test harness. By ensuring the reader/connection is closed and disposed (which common sense would say should improve matters), the trigger only fires on the very first iteration of the loop. The plot thickens.

  • Problem with Parcial trigger on master Datail

    my Entities :
    group: gId,parentId,name
    roles : pId,name
    permission: gId,pId
    my Associasions:
    GroupToGroupAssoc -> group.gId & group.parentId
    GroupToPermissionAssoc -> group.gId & permission.gId
    and i have a view on Group (that is shown as a tree on a page).
    and a view on permission (that is shown as a read Only table on the same page with the tree)
    the tree Binding is something like "myApp.model.view.GroupView(<GroupView_2>)"
    my question :
    I want the permission table to be refreshed on tree node selection change.
    but the problem is when I set parcialTrigger of the table to point to the "tree",It only get refreshed on first level selection change of the tree.
    and when inner nodes get selected no refresh happens!!!(that's because the tree seems to have two iterators)
    please advice,
    Thank you,
    Shahab

    Me once again, and I've got the solution!
    1. Put the text boxes where you want them on your Master.
    2. Go to the "Pages" panel and highlight all pages.
    3. In the "Pages" panel options pull-out, choose "Override all Master Page Items".
    Now all your pages have a free-floating text box!
    Cheers!
    Mikey

  • Problem with zoom trigger

    Hi friends,
    here i have a requirement to Customize Material Transactions Form to Zoom to the form Order Header Form after entering the Sales Order Number against which the Material transaction is happening passing order header_id as parameter (Order Fulfillment process automatically enters the Sales Order Number. The zoom must work after this process).
    Now, i can zoom to the order form and open it but i am unable to pass the parameters and i have no idea how to pass the parameters. plese help me to solve this problem.
    thanks in advance,
    siddam

    Hi Sunil,
    Firstly i would like to thank you for your time.
    I got lot of information in 115 dev guide the example is very good.
    But while definig parameters i followed the example and is as given below
    parameter name : PARAMETER996 NUMBER 30.
    In the WHERE CLAUSE have given the following code
    WHERE(PARAMETER996.HEADER_ID IS NULL OR
    MTL_MATERIAL_TRANSACTIONS.TRANSACTION_SOURCE_ID LIKE PARAMETER996.HEADER_ID).
    --mtl_material_trasactions is table name
    --parameter996 is parameter  name
    In the WHEN-NEW-FORM-INSTANCE trigger my code is
    if (:PARAMETER996.HEADER_ID is not null) THEN
    GO_BLOCK('RESULTS');
    do_key('EXECUTE_QUERY');
    :PARAMETER996.HEADER_ID := null;
    end if;
    i found the following error when i compiled it
    ERRORS:-
    ERROR 49 AT LINE 110, COLUMN 5
    BAD BIND VAIRABLE 'PARAMETER996.HEADER_ID'
    please tell me how can i rectify the errors to pass parameters to the targer form.
    thanks in advance,
    siddam

  • Problem with Logon Trigger

    The logon trigger written by me is nt returing either program or module from the V$session table. Here is my trigger
    create or replace trigger PROGME
    after logon on database
    declare
    v_SCHEMANAME varchar2(30);
    t_program varchar2(64);
    begin
         v_SCHEMANAME := SYS_CONTEXT('USERENV','SESSION_USER');
    sys_context(''userenv'',''SESSIONID'')' into t_program;
    logon_proc;
         select MODULE
         into t_program
         from v$session where username = (select
    (sys_context('userenv','session_user')) from dual) and
    audsid= (select(sys_context('userenv','sessionid')) from dual);
         RAISE_APPLICATION_ERROR (-20000,SQLERRM || T_PROGRAM);
         IF v_SCHEMANAME = 'REPADMIN' AND upper(t_PROGRAM) like '%TO%' THEN
              RAISE_APPLICATION_ERROR (-20000,SQLERRM || T_PROGRAM);     
         END IF;
    exception
    when others then
         RAISE_APPLICATION_ERROR (-20000,SQLERRM || v_PROGRAM);
    end PROGME;
    Thanks in advance
    Raghu

    Even tried rewriting like this
    create or replace trigger PROGME
    after logon on database
    declare
    v_SCHEMANAME varchar2(30);
    v_USERNAME varchar2(30);
    v_PROGRAM varchar2(30);
    v_SESSION NUMBER;
    v_SERIALNO NUMBER;
    V_ssql varchar2(100);
    v_count number;
    t_program varchar2(64);
    begin
         select program
         into t_program
         from v$session where username = (select
    (sys_context('userenv','session_user')) from dual) and
    audsid= (select(sys_context('userenv','sessionid')) from dual);
         RAISE_APPLICATION_ERROR (-20000,SQLERRM || T_PROGRAM);
         IF v_SCHEMANAME = 'REPADMIN' AND upper(t_PROGRAM) like '%TOAD%' THEN
              RAISE_APPLICATION_ERROR (-20000,SQLERRM || T_PROGRAM);     
         END IF;
    exception
    when others then
         RAISE_APPLICATION_ERROR (-20000,SQLERRM || v_PROGRAM);
    end trg_no_TOAD_logon;

  • Problem With me Trigger

    Dear all
    I write a trigger to update a value
    CREATE OR REPLACE TRIGGER APPS.XXEGYPLAST_UPDATE_SUBINVENTORY
    BEFORE INSERT OR UPDATE
    ON GME.GME_MATERIAL_DETAILS
    FOR EACH ROW
    DECLARE
    XXSUBINV VARCHAR2(256) :=NULL;
    BEGIN
    BEGIN
    SELECT SUBINVENTORY INTO XXSUBINV
    FROM XXGME_USERS_SUBINV
    WHERE USER_ID = :OLD.CREATED_BY ;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN XXSUBINV :=NULL;
    END;
    IF XXSUBINV <> NULL THEN
    --:new.SUBINVENTORY := 'M . B';
    :new.SUBINVENTORY := XXSUBINV;
    --ELSE
    --:new.SUBINVENTORY := 'M . B';
    END IF;
    EXCEPTION
    WHEN OTHERS THEN
    raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
    END XXEGYPLAST_UPDATE_SUBINVENTORY;
    the XXGME_USERS_SUBINV Table
    user_id subinventory
    2078 M . B
    1150 Staging
    Whats Wrong ?? Nothing happend!

    Hi,
    Please check that the trigger has not compiled successfully, because there is a syntactical error i have found.
    make correction in the condition
    IF XXSUBINV NULL THEN
    put IS before NULL
    after this change compile the trigger, and try to do insert or update operation on the mentioned table.
    Thanks,
    Vinod

  • What is the problem with this trigger

    please tell me why this trigger is not working , i tried to complile it but its giving the error!
    the format is ...
    create or replace trigger log_off
    BEFORE LOGOFF ON database
    begin
    insert into log_trigg_table
    values(user,sysdate,'LOGED ON');
    END LOG_OFF;
    and the error is
    BEFORE LOGOFF ON database
    ERROR at line 2:
    ORA-04072: invalid trigger type
    can you tell me the rreason
    one this i forgot to tell you that i am using oracle 8.0.6
    umair sattar
    null

    valid trigger types are BEFORE/AFTER
    INSERT/UPDATE/DELETE on TABLE

  • Problem with trigger and entity in JHeadsart, JBO-25019

    Hi to all,
    I am using JDeveloper 10.1.2 and developing an application using ADF Business Components and JheadStart 10.1.2.27
    I have a problem with trigger and entity in JHeadsart
    I have 3 entity and 3 views
    DsitTelephoneView based on DsitTelephone entity based on DSIT_TELEPHONE database table.
    TelUoView based on TelUo entity based on TEL_UO database table.
    NewAnnuaireView based on NewAnnuaire entity based on NEW_ANNUAIRE database view.
    I am using JHS to create :
    A JHS table-form based on DsitTelephoneView
    A JHS table based on TelUoView
    A JHS table based on NewAnnuaireView
    LIB_POSTE is a :
    DSIT_TELEPHONE column
    TEL_UO column
    NEW_ANNUAIRE column
    NEW_ANNUAIRE database view is built from DSIT_TELEPHONE database table.
    Lib_poste is an updatable attribut in TelUo entity, DsitTelephone entity, NewAnnuaire entity.
    Lib_poste is upadated in JHS table based on TelUoView
    I added a trigger on my database shema « IAN » to upadate LIB_POSTE in DSIT_TELEPHONE database table :
    CREATE OR REPLACES TRIGGER “IAN”.TEL_UO_UPDATE_LIB_POSTE
    AFTER INSERT OR UPDATE OFF lib_poste ONE IAN.TEL_UO
    FOR EACH ROW
    BEGIN
    UPDATE DSIT_TELEPHONE T
    SET t.lib_poste = :new.lib_poste
    WHERE t.id_tel = :new.id_tel;
    END;
    When I change the lib_poste with the application :
    - the lib_poste in DSIT_TELEPHONE database table is correctly updated by trigger.
    - but in JHS table-form based on DsitTelephoneView the lib_poste is not updated. If I do a quicksearch it is updated.
    - in JHS table based on NewAnnuaireView the lib_poste is not updated. if I do a quicksearch, I have an error:
    oracle.jbo.RowAlreadyDeletedException: JBO-25019: The row of entity of the key oracle.jbo. Key [null 25588] is not found in NewAnnuaire.
    25588 is the primary key off row in NEW_ANNUAIRE whose lib_poste was updated by the trigger.
    It is as if it had lost the bond with the row in the entity.
    Could you help me please ?
    Regards
    Laurent

    The following example should help.
    SQL> create sequence workorders_seq
      2  start with 1
      3  increment by 1
      4  nocycle
      5  nocache;
    Sequence created.
    SQL> create table workorders(workorder_id number,
      2  description varchar2(30),
      3   created_date date default sysdate);
    Table created.
    SQL> CREATE OR REPLACE TRIGGER TIMESTAMP_CREATED
      2  BEFORE INSERT ON workorders
      3  FOR EACH ROW
      4  BEGIN
      5  SELECT workorders_seq.nextval
      6    INTO :new.workorder_id
      7    FROM dual;
      8  END;
      9  /
    Trigger created.
    SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';
    Session altered.
    SQL> insert into workorders(description) values('test1');
    1 row created.
    SQL> insert into workorders(description) values('test2');
    1 row created.
    SQL> select * from workorders;
    WORKORDER_ID DESCRIPTION                    CREATED_DATE
               1 test1                          30-NOV-2004 15:30:34
               2 test2                          30-NOV-2004 15:30:42
    2 rows selected.

  • Problem with trigger and mutating table

    Hello,
    I have a problem with the following trigger. Everytime it starts I got an error message:
    ORA-04091: table ccq_test.QW_QUALIFIER is mutating, trigger/function may not see it
    ORA-06512: at "QW_AFTER_UPDATE_ALL", line 3
    ORA-06512: at "QW_AFTER_UPDATE_ALL", line 10
    ORA-04088: error during execution of trigger 'QW_AFTER_UPDATE_ALL'
    Here is the trigger:
    CREATE OR REPLACE TRIGGER qw_after_update_all
    AFTER UPDATE ON ccq_test.QW_QUALIFIER FOR EACH ROW
    DECLARE
         CURSOR c1 IS SELECT id AS mx FROM QW_QUALIFIER_LOG WHERE msgid = :NEW.msgid AND messagedate BETWEEN SYSDATE - (1 / (24 * 60 * 6)) AND SYSDATE AND transfer = 1;
         CURSOR c_qwprod IS SELECT value FROM ccq_test.QW_QUALIFIER WHERE msgid = :NEW.msgid AND name = 'product';
         CURSOR c_qwgesch IS SELECT value FROM ccq_test.QW_QUALIFIER WHERE msgid = :NEW.msgid AND name = 'geschaeftsfall';
         qw_rec c1%ROWTYPE;
         qw_prod c_qwprod%ROWTYPE;
         qw_gesch c_qwgesch%ROWTYPE;
    BEGIN
    OPEN c1;
    OPEN c_qwprod;
    OPEN c_qwgesch;
         FETCH c1 INTO qw_rec;
         FETCH c_qwprod INTO qw_prod;
         FETCH c_qwgesch INTO qw_gesch;
         IF c1%NOTFOUND THEN
              IF (:NEW.name = 'product') THEN
                   INSERT INTO QW_QUALIFIER_LOG VALUES (QW_QUALIFIER_LOG_SEQ.NEXTVAL, :NEW.msgid, :NEW.value, qw_gesch.value, SYSDATE, 1);
              ELSE
              INSERT INTO QW_QUALIFIER_LOG VALUES (QW_QUALIFIER_LOG_SEQ.NEXTVAL, :NEW.msgid, qw_prod.value, :NEW.value, SYSDATE, 1);
         END IF;
         ELSE
              IF (:NEW.name = 'product') THEN
                   UPDATE QW_QUALIFIER_LOG SET product=:NEW.value, messagedate=SYSDATE WHERE id = qw_rec.mx;
              ELSE
                   UPDATE QW_QUALIFIER_LOG SET geschaeftsfall=:NEW.value, messagedate=SYSDATE WHERE id = qw_rec.mx;
         END IF;
         END IF;
    CLOSE c1;     
    END;
    Can anyone help me?

    You are trying to lookup data from qw_qualifier you are currently modifying. You could see the data in a inconsistent way and Oracle is protecting you from it.
    You could read here about how to program around this problem.
    But: your table design seems questionable. You have two records for qw_qualifier and you are trying to log it into one qw_qualifier_log record. Maybe you could fix that, and the need for querying the same table as you are updating is removed.
    Regards,
    Rob.

  • I'm having an intermittent problem with my midi controllers triggering Mainstage 3. I'm using a PreSonus Firebox audio interface. It's been working fine for months, but now when I first turn on the computer in the morning , I'm not able to trigger Ma

    I’m having an intermittent problem with my midi controllers triggering Mainstage 3.
    I’m using a PreSonus Firebox audio interface.
    It’s been working fine for months, but now when I first turn on the computer in the morning , I’m not able to trigger MainStage from the keyboard.  I tried different midi controllers, different keyboards, different midi cords, and check midi preferences.  The audio interface is working fine and is recogonized, but the midi doesn’twork.  I re-started the computer several times and then finally it miraculously starts working again.
      I’ve been having to this every day now.  Any help or ideas is very much appreciated.

    I Had the same problem with a FireStudio. Try unplugging the FireWire plug and the power plug. Wait for a few seconds, then plug both back in. The light on my FireStudio was flashing blue/red which means "not connecting." I did what I just described, and everything works again. Hope it works for you.

  • Problem with combination of ClobDomain and DB Trigger

    Hi all,
    I am using JDeveloper 10.1.2.0.0 (Build 1811), Oracle RDBMS 10.1.0.4.0
    I have a DB Table which contains a CLOB column. This column is mapped in the EntityObject with the java type ClobDomain. Insert, update and delete actions are handled correctly by BC4J. The problem is that the database trigger on the table always gives me an empty CLOB object instead of the correct data.
    PL/SQL trigger
    CREATE OR REPLACE TRIGGER SYNC_CLOB
    AFTER INSERT OR UPDATE OR DELETE ON MYTABLE
    FOR EACH ROW
    BEGIN
    IF (DELETING OR
    :NEW.clobcolumn IS NULL OR
    DBMS_LOB.GETLENGTH(:NEW.clobcolumn) = 0) THEN
    -- Delete record from sync table
    ELSE
    -- Insert/Update record in sync table
    END IF;
    END;
    Scenario
    When I do an insert or update (in BC4J) that contains data for the clobcolumn, the clobcolumn is populated correctly, but the trigger always deletes the record in the sync table because the length of the CLOB is always zero. If I remove the condition DBMS_LOB.GETLENGTH(:NEW.clobcolumn) = 0 a empty CLOB is inserted/updated in the sync table.
    When I do an insert or update via SQL*Plus that contains data for the clobcolumn the trigger inserts/updates the correct CLOB value in the sync table.
    This leads me to the conclusion that there is a problem with the ClobDomain.
    Has this got something to do with the way the ClobDomain handles the dml operations (streaming to a LOB locator)?
    Can somebody help me?
    Thanks,
    Steven.

    Solved the problem by myself....

  • Problem with a call to a concurrent program from a trigger body...

    I have a table and a before update trigger on it.
    The trigger calls a packaged procedure. that submits a concurrent request.
    This concurrent request calls a packaged procedure.
    This packaged procedure inserts data into another table and then commits the insert.
    When I update the table with the trigger on it, (the above narrated scenario)....
    I come up with the error...
    ORA-04092: cannot SET SAVEPOINT in a trigger
    I didnt use any savepoint in my code.
    Any help is appreciated. Its a high priority issue.
    Thnx,
    Kiran

    You problem is that the standard PL/SQL code to submit a concurrent request (which is presumably what you are running) performs the savepoint, unless you have told it you are running from a database trigger. The processing performed by the concurrent request when it runs is not relevant to the processing of the trigger.
    We have code that submits a concurrent request successfully from a trigger, but before the call to FND_Request.Submit_Request, we call FND_Request.Set_Mode(TRUE) which tells the processing in FND_Request.Submit_Request that we are running from a database trigger and not to perform it's savepoint processing.

  • Problem with changes and visualization in the forms

    I have a problem with forms, the problem is the next, I do a modification in the database with a update or with form and in other station no visualized the change. The other station need close the form and open for visualize the modification.
    Why I have this problem

    I am not sure what you mean. Are you saying that after one form changes and commits data, it is not visible on the other user's screen?
    If that is the problem, unfortunately, that is the way Forms works. A form must re-query the data to see changes on the database. If your form must close and re-open, then you should create a trigger in your form to re-query the same data.
    I hope this helps.

Maybe you are looking for

  • BlackBerry Desktop Software giving Error (not opening)

    I have purchased BlackBerry Curve 3G 9300 but,It's more than 4 times that I am getting error on BlackBerry Desktop Software. After installing it open the BlackBerry Desktop Software window with logo and then Error window popup saying that BlackBerry

  • Document Question

    Thanks for reading.  I am creating a form that is using a Mousein and Mouseout script.  My idea is that when I hover over a specified spot on a map, I am using a button without any fill color, border color or text, have text appear showing the name o

  • Access privaleges? unable to rename folders

    i have a separate hfs+ non journaled storage partition on my hd so linux could access it. I also checked the "ignore ownership on this volume" and Read and Write to everyone and applied it to all enclosed items. But now in os X i cant edit folder nam

  • How can i change the request description?

    how can i change the request description? in BI 7 Regards Kiran

  • Some purchases not displaying on Mac

    Hi. I have bought Logic Pro 9 in 2012. I have reinstalled my Macbook-Pro. I have gone to the MAC App store and clicked on "Purchases" Everything is displaying except Logic Pro 9 Support tried to help me 3 times previously but it seems to be a technic