ORA-04091: table  is mutating, trigger/function

I am using oracle 11g R2 - 11.2.0.1
I have following function to fetch the ID from name supplied
create or replace
FUNCTION get_group_id
(p_groupname IN group_list.groupname%TYPE)
RETURN group_list.group_id%TYPE
AS
v_group_id group_list.group_id%TYPE;
BEGIN
SELECT group_list.group_id
INTO v_group_id
FROM group_list
WHERE group_list.groupname = p_groupname;
RETURN v_group_id;
END get_group_id;
and I am doing simple update command to the table, but its giving me ORA-04091 error. Any help is appreciated
update GROUP_LIST set MGR_GROUP_ID = get_group_id('manager1') where group_id = get_group_id('employee51');
Error which I am getting is -
Error report:
SQL Error: ORA-04091: table is mutating, trigger/function may not see it
ORA-06512: at "GET_GROUP_ID", line 7
04091. 00000 - "table %s.%s is mutating, trigger/function may not see it"
*Cause:    A trigger (or a user defined plsql function that is referenced in
this statement) attempted to look at (or modify) a table that was
in the middle of being modified by the statement which fired it.
*Action:   Rewrite the trigger (or function) so it does not read that table.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

>
and I am doing simple update command to the table, but its giving me ORA-04091 error. Any help is appreciated
update GROUP_LIST set MGR_GROUP_ID = get_group_id('manager1') where group_id = get_group_id('employee51');
Error which I am getting is -
Error report:
SQL Error: ORA-04091: table is mutating, trigger/function may not see it
>
And do you have a trigger on the GROUP_LIST table that calls you function that queries the GROUP_LIST table?
The solution is simple: DON'T DO THAT!
See Trigger Restrictions on Mutating Tables in the SQL Language doc
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/triggers.htm#g1699708
Trigger Restrictions on Mutating Tables
A mutating table is a table that is being modified by an UPDATE, DELETE, or INSERT statement, or a table that might be updated by the effects of a DELETE CASCADE constraint.
The session that issued the triggering statement cannot query or modify a mutating table. This restriction prevents a trigger from seeing an inconsistent set of data.
This restriction applies to all triggers that use the FOR EACH ROW clause. Views being modified in INSTEAD OF triggers are not considered mutating.
When a trigger encounters a mutating table, a run-time error occurs, the effects of the trigger body and triggering statement are rolled back, and control is returned to the user or application. (You can use compound triggers to avoid the mutating-table error. For more information, see Using Compound Triggers to Avoid Mutating-Table Error.)
Consider the following trigger:
CREATE OR REPLACE TRIGGER Emp_count
. . .

Similar Messages

  • ORA-04091: table is mutating, trigger/function may not see

    Hello All,
    I am not an expert in oracle and I have been facing a problem where I get a message as follows :
    ORA-04091: table <table> is mutating, trigger/function may not see it
    I have a table tab1 which has ID, name, and some other columns. the rows in this table form a parent-child type relationship based on some columns within that table. I have created another table called relationship table. The relationship table has 2 columns ID and parentID. I keep this table up to date using triggers. For example if a new record is inserted or upadted in tab1 which affects the parent - child relationship, i update the relationship table accordingly using an insert / update trigger and it works fine.
    I created another trigger as follows
    create or replace trigger MY_DELETE_TRIGGER
    after delete on tab1
    for each row
    BEGIN
    update relationships a set a.parentID = null where a.parentID = :OLD.ID;
    delete from relationships a where a.id = :OLD.ID;
    END MY_DELETE_TRIGGER;
    Basically what I am doing is, the record once deleted, if it was parent of anybody else, i am setting the parent as null and the record itself, if it was in the relationships as a child, I am removing that row.
    This is when I get the table is mutating error, and I don't know how to fix it.
    Can anybody please help me,
    Thanks in advance

    Could you provide more details?
    SQL> select * from tab1;
            ID NAME
             1 test1
             2 test2
    SQL> select * from relationships;
            ID   PARENTID
             1          1
             2          1
    SQL> create or replace trigger MY_DELETE_TRIGGER
      2  after delete on tab1
      3  for each row
      4  BEGIN
      5  update relationships a set a.parentID = null where a.parentID = :OLD.ID;
      6  delete from relationships a where a.id = :OLD.ID;
      7  END MY_DELETE_TRIGGER;
      8  /
    Trigger created.
    SQL> delete from tab1
      2  where id = 1;
    1 row deleted.
    SQL> select * from relationships;
            ID   PARENTID
             2
    SQL> rollback;
    Rollback complete.
    SQL> insert into relationships values(1,1);
    1 row created.
    SQL> select * from relationships;
            ID   PARENTID
             1          1
             2          1
             1          1
    SQL> delete from tab1
      2  where id = 1;
    1 row deleted.
    SQL> select * from relationships;
            ID   PARENTID
             2
    SQL> disconnect
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.3.0 - 64bit Production
    With the Partitioning option
    JServer Release 9.2.0.3.0 - Production

  • ORA-04091: table is mutating, trigger/function may no

    Hi all,
    I'm trying to create a trigger, but I got the following:
    ERROR at line 1:
    ORA-04092: cannot ROLLBACK in a trigger
    ORA-06512: at "PKG_PROJ", line 63
    ORA-04091: table TBL_DATA is mutating, trigger/function may not see it
    ORA-06512: at "T$D_INS_TDATA", line 4
    ORA-04088: error during execution of trigger 'T$D_INS_TDATA'My trigger is:
    CREATE OR REPLACE TRIGGER T$D_INS_TDATA
           AFTER INSERT ON TBL_DATA
           FOR EACH ROW
    DECLARE
    BEGIN
         PKG_PROJ.P$INSERT(:NEW.ID);
         COMMIT;
    END;
    /Where meu procedure is:
           PROCEDURE P$INSERT
               P_ID      IN TBL_DATA.ID%TYPE
           AS
           BEGIN
                INSERT INTO TBL_DETAIL
                    ID_DETAIL,           DT_DETAIL, OBS,
                SELECT SEQ_DETAIL.NEXTVAL, SYSDATE, 'INSERT TRIGGER TEST'
                FROM TBL_DATA DC
                AND   DC.ID    =  P_ID
                COMMIT WORK;
            EXCEPTION
                     WHEN OTHERS THEN
                         ROLLBACK;
                         RAISE_APPLICATION_ERROR(-20102, 'PKG_PROJ.P$INSERT: ' || SQLERRM);
           END P$INSERT;Somebody can help me???
    thanx!!!! :-)

    Tad,
    I believe you're performing SELECT on the triggering table in the PL/SQL block. In simple words, you're trying to change the information of a table the TRIGGER is created for and you're trying to read data from the same table.
    I suggest that you use PL/SQL pragma autonomous_transaction to resolve this, for as per Oracle documentation "The AUTONOMOUS_TRANSACTION pragma instructs the PL/SQL compiler to mark a routine as autonomous (independent). An autonomous transaction is an independent transaction started by another transaction, the main transaction. Autonomous transactions let you suspend the main transaction, do SQL operations, commit or roll back those operations, then resume the main transaction."
    Furthermore, you can also refer to the following discussion by Thomas Kyte for further understanding of mutating tables:
    Avoiding Mutating Tables
    http://asktom.oracle.com/tkyte/Mutate/
    Hope this helps.
    Regards,
    Naveed.

  • ORA-04091: table is mutating in a scenario

    Hello everyone
    I have a scenario like this:
    There are 2 schemas USER1 and USER2. There is a table (say STATUS_TABLE) with similar structure in both the schemas. In a certain scenario USER1 needs to tell USER2 about a flag which needs to updated in USER2.STATUS_TABLE. For this an intermediate table (say INTER_TABLE) has been created. Now USER1 inserts an entry in INTER_TABLE table & there is an on insert trigger on INTER_TABLE which updates that flag in USER2.STATUS_TABLE. After this update is done, the record in INTER_TABLE is of no use and should be deleted. Now the delete statement in the same trigger on INTER_TABLE raises ORA-04091: table is mutating. The same thing has to hapeen in other direction as well (eg USER2 to USER1).
    Something like this:
    USER1.STATUS_TABLE          INTER_TABLE          USER2.STATUS_TABLE
                       1 row inserted
               ---------------->
                        trigger on insert------->update a flag here
                      delete that rec from INTER_TABLE     
                           => ORA-04091: table is mutatingWhat would be the correct approach to implment this functionality ?
    I hope i explained the scenario properly :) . If any more details required, please let me know
    Thanks
    Amardeep Sidhu

    Hi,
    in Oracle 11g you can use compund trigger to handle all in one.
    Here is a sample for < Oracle 11g
    CREATE OR REPLACE PACKAGE var
    IS
      TYPE id_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
      ids  id_tab;
    END;
    CREATE TABLE inter_table (
      id   NUMBER,
      text VARCHAR2(10)
    CREATE OR REPLACE TRIGGER bis_inter_table
    BEFORE INSERT ON inter_table
    BEGIN
      var.ids.delete;
    END;
    CREATE OR REPLACE TRIGGER bir_inter_table
    BEFORE INSERT ON inter_table FOR EACH ROW
    BEGIN
      var.ids(var.ids.count+1) := :NEW.id;
    END;
    CREATE OR REPLACE TRIGGER asi_inter_table
    AFTER INSERT ON inter_table
    BEGIN
      FORALL n IN INDICES OF var.ids
        DELETE inter_table WHERE id = var.ids(n);
      FORALL n IN INDICES OF var.ids
        UPDATE status_table SET flag = 1 WHERE id = var.ids(n);
    END;
    CREATE TABLE status_table (
      id    NUMBER,
      text1 VARCHAR2(10),
      flag  NUMBER
    INSERT INTO status_table VALUES(1, 'Text1', 0);
    INSERT INTO status_table VALUES(2, 'Text2', 0);
    INSERT INTO status_table VALUES(3, 'Text3', 0);
    INSERT INTO status_table VALUES(4, 'Text4', 0);
    SELECT * FROM status_table;
    SELECT * FROM inter_table;
    INSERT INTO inter_table VALUES(1, 'Text1');
    SELECT * FROM status_table;
    SELECT * FROM inter_table;
    COMMIT;...have fun :)

  • Table is mutating, trigger/function may not see it

    Hi,
    I have been trying to get a trigger to execute a stored procedure when an update is made to a row in a table.
    The procedure works when ran manually and the trigger compiles but when the trigger is fired I get a "table is mutating, trigger/function may not see it" error.
    Here's a bit more background:
    I have a product table where the cost of a product is calculate based on costs in other tables (e.g. cost of raw materials is in the suppliesrawmat table).
    I have written a procedure (called proc_costcalc) which takes in a productID and updates that product's cost in the product table.
    I want a trigger to do this for every affected product when a rawmaterial cost is changed.
    The code of my trigger is:
    CREATE OR REPLACE trigger trig_rawcostupdate
    AFTER INSERT OR UPDATE ON suppliesrawmat FOR EACH ROW
    DECLARE
         cursor c1 is
         SELECT p.prodid
         FROM process p,
              (SELECT s.processid
              FROM stage s,
                   (SELECT stageno
                   FROM stagerawmat
                   WHERE prodid = :new.prodid) subquery0
              WHERE s.stageno = subquery0.stageno) subquery1
         WHERE p.processid = subquery1.processid;
    BEGIN
         FOR tuple in c1
         LOOP
              proc_costcalc(tuple.prodid);
         END LOOP;
    END;
    The query for the cursor generates a list of productIDs which I need to run through the proc_costcalc procedure.
    Can anyone show me where I am going wrong? How can I fix this?
    Thanks
    Keith

    I'm afraid I'm still not getting this.
    Suppose I have 4 tables (product, madefrom, rawmat and suppliesrawmat).
    Product (productid, cost)
    Madefrom (productid, rawmatid)
    Rawmat (rawmatid)
    Suppliesrawmat (supplierid, rawmatid, cost)
    The cost of a product should be the sum cost of all rawmaterials it is made from where the cheapest supply cost of that material is used.
    What I want to do is update the cost of a product when the cost of a raw material used in its production changes.
    My earlier attempt was to have a procedure which when given a productid updates the price of that product. However, when trying to call this procedure from an update on the suppliesrawmat table I recieved the table is mutating error. I now understand why (thanks to everyone for that) but I still don't really know how to rectify the problem.
    How should I be doing this?
    Thanks again
    Keith

  • SQL, PL/SQL functions, and ORA-04091 table is mutating

    Dears,
    Recently a question came up in an Oracle French forum about an insert/select that is throwing ORA-04091: table xxxx is mutating, trigger/function may not see it error in 11g while the same insert/select was working very well in 10g. The original poster gave a scenario that is easily reproducible. I am wondering what database release is correct the one throwing the error(11g) or the other one accepting the insert/select(10g)?
    *10g*
    mhouri.world > select * from v$version;
    BANNER                                                                         
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi               
    PL/SQL Release 10.2.0.4.0 - Production                                         
    CORE     10.2.0.4.0     Production                                                     
    TNS for Solaris: Version 10.2.0.4.0 - Production                               
    NLSRTL Version 10.2.0.4.0 - Production                                         
    mhouri.world > create table t_read_consistency (id number, vc varchar2(15), primary key (id));
    Table created.
    mhouri.world > insert into
      2        t_read_consistency
      3      select
      4        rownum id,
      5        rpad('a',15,'a')
      6      from
      7        dual
      8      connect by
      9        level<=1000;
    1000 rows created.
    mhouri.world > commit;
    Commit complete.
    mhouri.world > create or replace function f_read_consistency return varchar2
      2       as
      3        lv_vc  t_read_consistency.vc%type;
      4       begin
      5         select trc.vc
      6         into lv_vc
      7          from t_read_consistency trc
      8         where trc.id = 70 ;
      9        return lv_vc;
    10     end f_read_consistency;
    11    /
    Function created.
    mhouri.world >insert into
      2        t_read_consistency (id, vc)
      3      select
      4         1001
      5        ,f_read_consistency
      6      from dual;
          ,f_read_consistency
    ERROR at line 5:
    ORA-04091: table MHOURI.T_READ_CONSISTENCY is mutating, trigger/function may not see it
    ORA-06512: at "MHOURI.F_READ_CONSISTENCY", line 5
    _11g_
    mohamed@mhouri> select * from v$version;
    BANNER                                                                         
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production         
    PL/SQL Release 11.2.0.1.0 - Production                                         
    CORE     11.2.0.1.0     Production                                                     
    TNS for 32-bit Windows: Version 11.2.0.1.0 - Production                        
    NLSRTL Version 11.2.0.1.0 - Production                                         
    mohamed@mhouri> create table t_read_consistency (id number, vc varchar2(15), primary key (id));
    Table created.
    mohamed@mhouri> insert into
      2    t_read_consistency
      3  select
      4    rownum id,
      5    rpad('a',15,'a')
      6  from
      7    dual
      8  connect by
      9    level<=1000;
    1000 rows created.
    mohamed@mhouri>  create or replace function f_read_consistency return varchar2
      2   as
      3    lv_vc  t_read_consistency.vc%type;
      4   begin
      5     select trc.vc
      6     into lv_vc
      7      from t_read_consistency trc
      8     where trc.id = 70 ;
      9    return lv_vc;
    10  end f_read_consistency;
    11  /
    Function created.
    mohamed@mhouri> insert into
      2    t_read_consistency (id, vc)
      3  select
      4     1001
      5    ,f_read_consistency
      6  from dual;
      ,f_read_consistency
    ERROR at line 5:
    ORA-04091: table MOHAMED.T_READ_CONSISTENCY is mutating, trigger/function may
    not see it
    ORA-06512: at "MOHAMED.F_READ_CONSISTENCY", line 5 So far so good. Same behaviour for both releases. But let's bring a small change to the PL/SQL function to be as close as the example given in the French Forum
    _10g where the select/insert was working without error_:
    mhouri.world > select * from v$version;
    BANNER                                                                         
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi               
    PL/SQL Release 10.2.0.4.0 - Production                                         
    CORE     10.2.0.4.0     Production                                                     
    TNS for Solaris: Version 10.2.0.4.0 - Production                               
    NLSRTL Version 10.2.0.4.0 - Production       
    mhouri.world > create type t_read_cs as object (id number,vc varchar2(15));
      2  /
    Type created.
    mhouri.world > create type t_read_cs_tab  as table of t_read_cs;
      2  /
    Type created.
    mhouri.world > create or replace function f_read_consistency_tab
      2  return t_read_cs_tab
      3    as
      4      lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
      5      j  binary_integer := 0;
      6    begin
      7        for x in (select
      8                      id,
      9                      vc
    10                   from  t_read_consistency trs
    11                  where trs.id <= 10
    12       ) loop
    13 
    14          j := j +1;
    15          lc_t_read_cs_tab.extend;
    16          lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
    17     end loop;
    18     RETURN lc_t_read_cs_tab;
    19   end f_read_consistency_tab;
    20  /
    Function created.
    mhouri.world > select count(1) from t_read_consistency;
      COUNT(1)                                                                                                             
          1000                                                                                                             
    mhouri.world > select count(1)
      2  from (select * from table(f_read_consistency_tab));
      COUNT(1)                                                                                                             
            10                                                                                                             
    mhouri.world > insert into t_read_consistency
      2         (id,vc)
      3      select id,vc
      4   from table(f_read_consistency_tab)
      5  ;
    10 rows created.
    mhouri.world > select count(1) from t_read_consistency;
      COUNT(1)                                                                                                             
          1010            
    _11g where the same insert/select is throwing an error:_
    mohamed@mhouri> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE    11.2.0.1.0      Production
    TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    mohamed@mhouri> create type t_read_cs as object (id number,vc varchar2(15));
      2  /
    Type created.
    mohamed@mhouri> create type t_read_cs_tab  as table of t_read_cs;
      2  /
    Type created.
    mohamed@mhouri> create or replace function f_read_consistency_tab
      2      return t_read_cs_tab
      3        as
      4          lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
      5          j  binary_integer := 0;
      6        begin
      7            for x in (select
      8                          id,
      9                          vc
    10                      from  t_read_consistency trs
    11                     where trs.id <= 10
    12          ) loop
    13 
    14            j := j +1;
    15             lc_t_read_cs_tab.extend;
    16             lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
    17        end loop;
    18        RETURN lc_t_read_cs_tab;
    19      end f_read_consistency_tab;
    20    /
    Function created.
    mohamed@mhouri> select count(1) from t_read_consistency;
      COUNT(1)                                                                     
          1000                                                                     
    mohamed@mhouri> select count(1) from (select * from table(f_read_consistency_tab));
      COUNT(1)                                                                     
            10                                                                     
    mohamed@mhouri> insert into t_read_consistency
      2            (id,vc)
      3          select id,vc
      4      from table(f_read_consistency_tab)
      5     ;
        from table(f_read_consistency_tab)
    ERROR at line 4:
    ORA-04091: table MOHAMED.T_READ_CONSISTENCY is mutating, trigger/function may
    not see it
    ORA-06512: at "MOHAMED.F_READ_CONSISTENCY_TAB", line 7 In addition, one of the posters spotted out very judiciously that if we slightly change the definition of the table t_read_consistency in 11g, strangely the insert/select will work correctly in this data base as shown below:
    ohamed@mhouri> drop table tr_read_consistency;
    Table dropped.
    mohamed@mhouri> create table tr_read_consistency
      2      as select rownum rn,
      3                trs.*
      4      from
      5         t_read_consistency trs;
    Table created.
    mohamed@mhouri> insert into tr_read_consistency
      2                 (rn, id,vc)
      3              select rownum, id,vc
      4           from table(f_read_consistency_tab);
    10 rows created.So is this a regression? or a corrected bug during upgrade?
    Thanks in advance
    Mohamed Houri

    I just followed the doc links provided by Tubby, which have 100% Correct answer. See below :
    SQL> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE    11.2.0.1.0      Production
    TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    SQL> show user;
    USER is "SCOTT"
    SQL> create type t_read_cs as object (id number,vc varchar2(15));
      2  /
    Type created.
    SQL> create type t_read_cs_tab  as table of t_read_cs;
      2  /
    Type created.
    SQL> create table t_read_consistency (id number, vc varchar2(15), primary key (id));
    Table created.
    SQL> create or replace function f_read_consistency_tab
      2  return t_read_cs_tab
      3  as
      4  lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
      5  j  binary_integer := 0;
      6  begin
      7  for x in (select
      8  id,
      9  vc
    10  from  t_read_consistency trs
    11  where trs.id <= 10
    12  ) loop
    13  j := j +1;
    14  lc_t_read_cs_tab.extend;
    15  lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
    16  end loop;
    17  RETURN lc_t_read_cs_tab;
    18  end f_read_consistency_tab;
    19  /
    Function created.
    SQL> insert into
      2  t_read_consistency
      3  select
      4  rownum id,
      5  rpad('a',15,'a')
      6  from
      7  dual
      8  connect by
      9  level<=1000;
    1000 rows created.
    SQL> select count(1) from t_read_consistency;
      COUNT(1)
          1000
    SQL> select count(1) from (select * from table(f_read_consistency_tab));
      COUNT(1)
            10
    SQL> insert into t_read_consistency
      2  (id,vc)
      3  select id,vc
      4  from table(f_read_consistency_tab);
    from table(f_read_consistency_tab)
    ERROR at line 4:
    ORA-04091: table SCOTT.T_READ_CONSISTENCY is mutating, trigger/function may not see it
    ORA-06512: at "SCOTT.F_READ_CONSISTENCY_TAB", line 7
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace function f_read_consistency_tab
      2  return t_read_cs_tab
      3  as
      4  lc_t_read_cs_tab t_read_cs_tab := t_read_cs_tab();
      5  j  binary_integer := 0;
      6  PRAGMA AUTONOMOUS_TRANSACTION; <--- This works as documented in 11.2.0.1
      7  begin
      8  for x in (select
      9  id,
    10  vc
    11  from  t_read_consistency trs
    12  where trs.id <= 10
    13  ) loop
    14  j := j +1;
    15  lc_t_read_cs_tab.extend;
    16  lc_t_read_cs_tab(j) := t_read_cs(x.id, x.vc);
    17  end loop;
    18  RETURN lc_t_read_cs_tab;
    19* end f_read_consistency_tab;
    SQL> /
    Function created.
    SQL> insert into t_read_consistency
      2  (id,vc)
      3  select id,vc
      4  from table(f_read_consistency_tab);
    insert into t_read_consistency
    ERROR at line 1:
    ORA-00001: unique constraint (SCOTT.SYS_C0011307) violated
    SQL> drop table t_read_consistency purge;
    Table dropped.
    SQL> create table t_read_consistency (id number, vc varchar2(15));
    Table created.
    SQL> insert into
      2  t_read_consistency
      3  select
      4  rownum id,
      5  rpad('a',15,'a')
      6  from
      7  dual
      8  connect by
      9  level<=1000;
    1000 rows created.
    SQL> commit;
    Commit complete.
    SQL> insert into t_read_consistency
      2  (id,vc)
      3  select id,vc
      4  from table(f_read_consistency_tab);
    10 rows created.
    SQL> commit;
    Commit complete.
    SQL>So, you have to add only PRAGMA AUTONOMOUS_TRANSACTION; before begin in your function code to avoid ORA-04091 in 11.2.0.1
    But, All thanks to Tubby who pointed us to the correct documentation link.
    Regards
    Girish Sharma

  • Table is mutating, trigger/function may not

    hi
    while executing this:
    SQL> insert into LIB_ACCESSION_LOG select * from LIB_ACCESSION_LOG11;
    insert into LIB_ACCESSION_LOG select * from LIB_ACCESSION_LOG11
    ERROR at line 1:
    ORA-04091: table QA.LIB_ACCESSION_LOG is mutating, trigger/function may not
    see it
    ORA-06512: at "QA.TRG_ACCESSION_LOG", line 2
    ORA-04088: error during execution of trigger 'QA.TRG_ACCESSION_LOG'
    how can i do this insert and resolve this error. should i switch off the constraints? and what will happen when i switch on the constraints?

    Hi,
    what is the contents for trigger QA.TRG_ACCESSION_LOG?
    cheers

  • Table  is mutating, trigger/function may not seen it

    Hi
    My work is before delete this record the same values can be stored into the temporary table..
    Trigger
    CREATE OR REPLACE TRIGGER TEST_TRIGGER
    BEFORE DELETE ON py_test
    for each row
    DECLARE
    EMP_ID py_test%ROWTYPE;
    CURSOR C1 IS SELECT ID,NAME FROM py_test where id=:old.ID;
    begin
    FOR EMP_ID IN C1
    LOOP
    -- DBMS_OUTPUT.PUT_LINE(EMP_ID.ID);
    INSERT INTO TEMP_TABLE VALUES(EMP_ID.ID,EMP_ID.NAME);
    END LOOP;
    END;
    delete from py_test where id=1;
    ERROR at line 1:
    ORA-04091: table TRIGGTEST.PY_TEST is mutating, trigger/function may not see it..
    Pls help..
    Thanks

    Hi,
    I took Rob's example and inserted one more row in "PY_TEST" table for ID=1 and it works perfectly. Have a look:
    SQL>  create table py_test
      2   as
      3   select 1 id, 'Name1' name from dual union all
      4   select 2, 'Name2' from dual
      5   /
    Table created.
    SQL> select * from py_test;
            ID NAME
             1 Name1
             2 Name2
    SQL> insert into py_test values (1, 'NameN');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> select * from py_test;
            ID NAME
             1 Name1
             2 Name2
             1 NameN
    SQL>  create table temp_table
      2   ( id number(10)
      3   , name varchar2(30)
      4   )
      5   /
    Table created.
    SQL> create or replace trigger test_trigger
      2   before delete on py_test
      3   for each row
      4   begin
      5     insert into temp_table values (:old.id, :old.name);
      6   end;
      7   /
    Trigger created.
    SQL>  delete from py_test where id = 1;
    2 rows deleted.
    SQL> select * from temp_table;
            ID NAME
             1 Name1
             1 NameN
    SQL>

  • ORA-04091: Table is mutating

    Hi all!
    I have a problem that maybe some of you can answer.
    I have two tables, table A and table B,
    the point is that i want to delete one record from table A when Table B has no records with some condition,
    i try this using an AFTER DELETE Trigger on Table B, checking there if there are no records but the error ORA-04091 appears.
    Someone have an idea on how to solve this?
    thx in advance!

    I would take this over to the PL/SQL Forum (PL/SQL instead. You'll get way more experts over there and more accurate answers especially since this is not really specific to Apex.

  • Rgding ORA-04091:table PURCHSE_DTL is mutating,trigger/function maynot c it

    I wrote a trigger 'TRG_PURCHASE_DTL' to update the stock table 'BRANCH_ITEM_STOCK' based on the DML actions perfomed on tables PURCHASE_DTL and ISSUE_DTL, but I am getting following error:-
    ORA-04091: table PURCHASE_DTL is mutating, trigger/function may not see it
    and the value of 'BRANCH_ITEM_STOCK.purchase_qty' is updated to 10 instead of 18.
    The table structure and data is given below:
    -- ============================================================
    -- Table: BRANCH_ITEM_STOCK
    -- ============================================================
    create table BRANCH_ITEM_STOCK
    BRANCH_CODE NUMBER(6) not null,
    ITEM_CODE NUMBER(6) not null,
    PURCHASE_QTY NUMBER(6) null ,
    RECEIPT_QTY NUMBER(6) null ,
    ISSUE_QTY NUMBER(6) null ,
    BALANCE_QTY NUMBER(6) null ,
    REMARKS VARCHAR2(100) null ,
    constraint PK_RA25_BRANCH_ITEM_STOCK primary key (BRANCH_CODE, ITEM_CODE)
    -- ============================================================
    -- Table: PURCHASE_MST
    -- ============================================================
    create table PURCHASE_MST
    BRANCH_CODE NUMBER(6) not null,
    PURCHASE_YR NUMBER(6) not null,
    PURCHASE_NO NUMBER(6) not null,
    PURCHASE_DT DATE not null,
    QUOTATION_NO NUMBER(6) not null,
    QUOTATION_YR NUMBER(4) not null,
    VENDOR_CODE NUMBER(6) not null,
    RECEIPT_NO VARCHAR2(25) null ,
    constraint PK_PURCHASE_HDR primary key (BRANCH_CODE, PURCHASE_YR, PURCHASE_NO)
    -- ============================================================
    -- Table: PURCHASE_DTL
    -- ============================================================
    create table PURCHASE_DTL
    BRANCH_CODE NUMBER(6) not null,
    PURCHASE_YR NUMBER(6) not null,
    PURCHASE_NO NUMBER(6) not null,
    REC_SNO NUMBER(6) not null,
    ITEM_CODE NUMBER(6) not null,
    ITEM_QTY NUMBER(6) not null,
    ITEM_PRICE NUMBER not null,
    ITEM_AMT NUMBER not null,
    constraint PK_PURCHASE_DTL primary key (BRANCH_CODE, PURCHASE_YR, PURCHASE_NO, REC_SNO)
    -- ============================================================
    -- Table: ISSUE_MST
    -- ============================================================
    create table ISSUE_HDR
    BRANCH_CODE NUMBER(6) not null,/* Issued from Branch*/
    ISSUE_YR NUMBER(6) not null,
    ISSUE_NO NUMBER(6) not null,
    ISSUE_DT DATE not null,
    ISSUED_BY VARCHAR2(15) not null,
    ISSUED_TO_BRANCH VARCHAR2(15) not null,
    ISSUE_STATUS NUMBER(6) null,
    constraint PK_ISSUE_HDR primary key (BRANCH_CODE, ISSUE_YR, ISSUE_NO)
    -- ============================================================
    -- Table: ISSUE_DTL
    -- ============================================================
    create table ISSUE_DTL
    BRANCH_CODE NUMBER(6) not null,
    ISSUE_YR NUMBER(6) not null,
    ISSUE_NO NUMBER(6) not null,
    REC_SNO VARCHAR2(25) not null,
    ITEM_CODE NUMBER(6) not null,
    ITEM_DTL VARCHAR2(400) null ,
    ITEM_QTY NUMBER(6) null ,
    RECEIPT_QTY NUMBER(6) null ,
    constraint PK_RA25_ISSUE_DTL primary key (BRANCH_CODE, ISSUE_YR, ISSUE_NO, REC_SNO)
    Assume that the Contents of PURCHASE_MST is as follows:
    SELECT branch_code, purchase_yr, purchase_no FROM PURCHASE_HDR;
    BRANCH_CODE PURCHASE_YR PURCHASE_NO     
    100          2008          1     
    100          2009          1     
    100          2009          2     
    Now I tried to insert follwing values to the PURCHASE_DTL table:
    insert into purchase_dtl (BRANCH_CODE,PURCHASE_YR,PURCHASE_NO,rec_sno,
    ITEM_CODE,item_QTY)
    Values (100,2008,1,1,4,5)
    insert into purchase_dtl (BRANCH_CODE,PURCHASE_YR,PURCHASE_NO,rec_sno,
    ITEM_CODE,item_QTY)
    Values (100,2009,1,1,4,2)
    insert into purchase_dtl (BRANCH_CODE,PURCHASE_YR,PURCHASE_NO,rec_sno,
    ITEM_CODE,item_QTY)
    Values (100,2009,2,1,4,6)
    commit
    Now Contents of table ' PURCHASE_DTL ' is as follows:
    BRANCH_CODE PURCHASE_YR PURCHASE_NO     REC_SNO ITEM_CODE     ITEM_QTY
    100          2008          1     1          4     5
    100          2009          1     1          4     2
    100          2009          2     1          4     6
    I want to write a trigger which will insert/update/delete data into/from BRANCH_ITEM_STOCK,
    so that the contents of column Purchase_qty of table BRANCH_ITEM_STOCK should be as follows:
    BRANCH_CODE     ITEM_CODE     PURCHASE_QTY     RECEIPT_QTY     ISSUE_QTY     BALANCE_QTY
    100          4          13          0          0          13
    [Note:  i.e BRANCH_ITEM_STOCK.PURCHASE_QTY = SUM(PURCHASE_DTL.item_qty) 
         where PURCHASE_DTL.branch_code=100
         AND PURCHASE_DTL.item_code=4
    Now run the following update statement.
    update purchase_dtl
    set item_qty= 10
    where BRANCH_code=100
    and purchase_yr in ( 2008) and purchase_no =1 and rec_sno = 1 AND item_code = 4
    commit
    Now the actual contents of column Purchase_qty of table BRANCH_ITEM_STOCK should be updated as follows:
    BRANCH_CODE     ITEM_CODE     PURCHASE_QTY     RECEIPT_QTY     ISSUE_QTY     BALANCE_QTY
    100          4          18          0          0          18
    But I am facing problem here. I am getting following error:-
    ORA-04091: table PURCHASE_DTL is mutating, trigger/function may not see it
    and the value of purchase qty is updated to 10 instead of 18
    Similarly if any issue of items happen (for eg:- issue_qty=2 to branch_code 200), then the purchase_qty =18,issue_qty=2 , balance_qty:=18-2=16 .
    So for branch_code 200 , receipt_qty = 2.
    Pls help me how to achieve the above .
    Source code which I tried is given below : (but confused at the end )..please help
    CREATE OR REPLACE TRIGGER trg_purchase_dtl
    BEFORE INSERT ON PURCHASE_DTL
    for each row
    declare
    -- local variables here
    l_qty number(6);
    l_cnt NUMBER;
    BEGIN
    BEGIN
    SELECT COUNT(*) into l_cnt
    FROM BRANCH_item_stock b
    WHERE b.BRANCH_code = :new.BRANCH_code
    AND b.item_code = :new.item_code ;
    dbms_output.put_line('1.after selet cnt= '||l_cnt);
    EXCEPTION when no_data_found then
    l_cnt := 0;
    dbms_output.put_line('2.in expt NDF selet cnt= '||l_cnt);
    null;
    END;
    IF INSERTING THEN
    dbms_output.put_line('3.before if ...going to insert ');
    IF l_cnt = 0 THEN
    dbms_output.put_line('hihhiii.......lcnt=0...item_code='||:old.item_code||'~l_qty='||l_qty);
    IF INSERTING THEN
         INSERT INTO BRANCH_ITEM_STOCK
    (BRANCH_code,Item_Code, PURCHASE_QTY,RECEIPT_QTY, issue_qty, balance_qty)
         VALUES(:NEW.BRANCH_code,:NEW.Item_Code, :NEW.ITEM_QTY,0, 0, 0);
    END IF;
    ELSIF l_cnt >0 THEN
    SELECT purchase_qty into l_qty
    FROM BRANCH_Item_Stock
    WHERE BRANCH_code = :new.BRANCH_code
    AND item_code = :new.item_code ;
    l_qty := l_qty + :NEW.ITEM_QTY;
    dbms_output.put_line('6.after selet qty= '||l_qty ||'~new qty='||:NEW.ITEM_QTY||'~old qty='||:OLD.ITEM_QTY);
    dbms_output.put_line('7.before update '||l_qty);
    -- IF INSERTING OR UPDATING THEN
    UPDATE BRANCH_ITEM_STOCK
              SET PURCHASE_QTY = l_qty
              WHERE BRANCH_code = :new.BRANCH_code
    AND item_code = :new.item_code ;
    dbms_output.put_line('8.after update= '||l_qty);
    --END IF;
    END IF;
    END IF; -- end of INSERTING
    -- END;
    --EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
         IF UPDATING THEN
              dbms_output.put_line('9.if UPDATING...qty= '||l_qty ||'~new qty='||:NEW.ITEM_QTY||'~old qty='||:OLD.ITEM_QTY);
    BEGIN
    dbms_output.put_line('~old unotcode='||:old.BRANCH_code||'~old.item_code='||:OLD.ITEM_CODE||'~old itemqty='||:old.item_qty);
    dbms_output.put_line('~new unotcode='||:new.BRANCH_code||'~new.item_code='||:new.ITEM_CODE||'~new itemqty='||:new.item_qty);
    SELECT NVL(SUM(item_qty), 0) into l_qty
         FROM Ra25_Purchase_Dtl
         WHERE BRANCH_code IN ( :old.BRANCH_code )
         AND item_code in ( :old.item_code)
         AND item_qty <> :old.item_code ;
    EXCEPTION WHEN OTHERS THEN
    dbms_output.put_line('10.in EWO'||sqlerrm);
    END;
    --l_qty := l_qty + :NEW.ITEM_QTY;         
    dbms_output.put_line('11.after selet qty= '||l_qty ||'~new qty='||:NEW.ITEM_QTY||'~old qty='||:OLD.ITEM_QTY);
         UPDATE BRANCH_ITEM_STOCK
              SET PURCHASE_QTY = l_qty      --:new.item_qty
              WHERE BRANCH_code = :old.BRANCH_code
              AND item_code = :old.item_code ;
              dbms_output.put_line('13.after update ');
         END IF;
    IF DELETING THEN
    DELETE FROM BRANCH_ITEM_STOCK
    WHERE BRANCH_CODE = :OLD.BRANCH_code
    AND ITEM_CODe = :OLD.item_code;
    END IF;
    end trg_purchase_dtl;
    Please help me how to resolve this problem asap.
    -------------------------------------------------------------------------------------------------------------------------------------------------

    Hi,
    Welcome to the forum!
    See this thread [Avoiding Mutating Tables|http://asktom.oracle.com/tkyte/Mutate/index.html]
    Tip: to preserve formatted code enclose it between {noformat}{noformat} tags (start and end tags are the same) :)
    Thank you for posting DDL and DML of basic data, all people that post should follow this approach.
    Regards,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • ORA-04091 table string.string is mutating, trigger/function may not see it

    When I am tending to delete something from my table I received this message.
    I defined a PL/SQL function reads data from that table. Is that meaning I could not modify anything in table once I have some PL/SQL defined on that? It sounds ridiculour. Or I missed some points?
    Anyone could help me out?
    Many thanks,
    Qiang

    In get_point_coordinates(point_id, layerid), it does not have any codes deleting thing from point_tab.
    Its functionality is to find out that specified point;
    put its coordinates into SDO_GEOMETRY object and return as function value.
    However, oracle does not allow me to delete any data from point table since then.It is saying that function (get_point_coordinates) can not know mutating tables.
    When I run delete task:
    delete from point$_view where point_id = 1;
    I got errors:
    ERROR at line 1:
    ORA-04091: table POINT$_TABLE is mutating, trigger/functio
    n may not see it
    ORA-06512: at "GET_POINT_COORDINATES", /* THIS LINE REPORS ERROR*/ Look at codes below.
    The following is code of function: GET_POINT_COORDINATES
    FUNCTION GET_POINT_COORDINATES(pPoint_ID IN NUMBER, player_ID IN NUMBER)
    RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC IS
    PSRID NUMBER :=NULL:
    PLON NUMBER := NULL;
    PLAT NUMBER := NULL;
    CURSOR get_lonlat(ppoint_id IN NUMBER, player_id IN NUMBER) IS SELECT LON,LAT
    FROM POINT$_VIEW /* THIS LINE REPORS ERROR*/
    WHERE player_id = layer_id AND ppoint_id = point_id;
    BEGIN
    PSRID := 8265;
    OPEN get_lonlat(pPoint_ID,Player_ID);
    FETCH get_lonlat INTO PLON, PLAT;
    RETURN MDSYS.SDO_GEOMETRY(2001,PSRID,MDSYS.SDO_POINT_TYPE(PLON,PLAT,NULL),NULL ,NULL);
    END GET_POINT_GEOM;
    I guess it has nothing with foreign key. There is something wrong with this function.
    By the way, a spatail index is built on this function. Does this make any differences on this point?

  • ORA-04091: table AM is mutating, trigger/function may not see it

    I create this trigger:
    CREATE OR REPLACE TRIGGER pr_test
    after insert ON AM
    FOR EACH ROW
    declare
    appo_pr varchar2(64):= null;
    BEGIN
    select name
    into appo_pr
    from AS
    where AS_ID=:new.AS_ID;
    insert into AM (name) values (appo_pr);
    END pr_test;
    I insert before a new AS_ID and name in tab AS but when I insert a new record in tab AM I get this error:
    ORA-04091: table AM is mutating, trigger/function may not see it
    ORA-06512: at PR_TEST", line 11
    ORA-04088: error during execution of trigger PR_TEST'
    I'd like to create a trigger that when I insert a new record in AM It verify the value in col name of AS and insert this value in col name of AM.
    What I wrong in this trigger??
    How can I modify it??
    Thanks
    Raf

    Try this:
    CREATE OR REPLACE TRIGGER pr_test
      before insert ON AM
      FOR EACH ROW
    declare
      appo_pr AS.name%TYPE;
    BEGIN
      select name
      into   appo_pr
      from   AS
      where  AS_ID = :new.AS_ID;
      :new.name = appo_pr;
    END pr_test;

  • ORA-04091:table XYZ is mutating,trigger/function may not see it ORA-06512

    Hi everybody
    i am facing mutating problem during data deletion fron XYZ table as
    ORA-04091:table XYZ is mutating,trigger/function may not see it ORA-06512 at "user.procdure_name",line 39 ORA-065
    i have table XYZ and have database trigger on this table
    and also have procedure "user.abc" in this procedure m selecting data from xyz table

    You didn't post the actual code. I was more interested in seeing table name and the trigger body.
    Anyways, mutation problem comes when you refer the same table on the trigger, on which it is based for some data manipulation on that table.
    For e.g, If inside your trigger body, you are doing INSERT on the same table, then it'll definitely result in mutation problem because this trigger will be fired endlessly (as it is after insert trigger).
    Please mark answer as helpful / correct, if it helps you
    Navnit

  • ORA-04091: table ACCESSLOG is mutating, trigger/function may not see it

    Hi
    Got the following error
    ORA-04091: table ACCESSLOG is mutating, trigger/function may not see it
    i searched the error found that the problem is with FOR EACH ROW
    how can i handel this specifically with the following code:
    CREATE OR REPLACE TRIGGER EMP_ACCESS
    AFTER INSERT
    ON ACCESSLOG
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE
    tmpVar NUMBER;
    BEGIN
    IF ( :NEW.INOUT = 'OUT' ) THEN
    SELECT 'X'
    INTO tmpVar
    FROM ACCESSLOG
    WHERE EMPLOYEEID = :NEW.EMPLOYEEID
    AND LOGDATE = :NEW.LOGDATE
    AND INOUT ='IN' ;
    IF tmpVar IS NULL THEN
    INSERT INTO Emp_All_Moves_Absent (
    EMP_NO,
    ATT_DATE,
    ATT_FLAG,
    ATT_TIME_IN,
    ATT_TIME_OUT,
    VAC_COD,
    MIS_CODE,
    DAY_FLAG ,
    POSTEDFLAG,
    ATT_TIME_IN_PLANNED,ATT_TIME_OUT_PLANNED)
    VALUES
    (to_number(to_char(:NEW.employeeid,99999)),
    TO_DATE(:NEW.LOGDATE,'DD/MM/YYYY'),
    'ABS' ,
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    NULL,
    NULL,
    'WORK',
    0,
    NULL,NULL);
    END IF;
    ELSIF ( :NEW.INOUT = 'IN' ) THEN
    SELECT 'X'
    INTO tmpVar
    FROM ACCESSLOG
    WHERE EMPLOYEEID = :NEW.EMPLOYEEID
    AND LOGDATE = :NEW.LOGDATE-1
    AND INOUT ='IN' ;
    IF tmpVar IS NULL THEN
    INSERT INTO Emp_All_Moves_Absent (
    EMP_NO,
    ATT_DATE,
    ATT_FLAG,
    ATT_TIME_IN,
    ATT_TIME_OUT,
    VAC_COD,
    MIS_CODE,
    DAY_FLAG ,
    POSTEDFLAG,
    ATT_TIME_IN_PLANNED,ATT_TIME_OUT_PLANNED)
    VALUES
    (to_number(to_char(:NEW.employeeid,99999)),
    TO_DATE(:NEW.LOGDATE-1,'DD/MM/YYYY'),
    'ABS' ,
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    NULL,
    NULL,
    'WORK',
    0,
    NULL,NULL);
    END IF;
    END IF;
    EXCEPTION
    WHEN OTHERS THEN
    -- Consider logging the error and then re-raise
    RAISE;
    END EMP_ACCESS_LOG_OUT;
    Urgent help is highly appreciated..
    Regards,
    Abdetu..

    Thanks Jens Petersen for reply
    now i want to make sure of one thing that i have to follow the steps but the last one i will replace it with my trigger NO?
    SQL> create or replace package state_pkg
    2 as
    3 type ridArray is table of rowid index by binary_integer;
    4
    4 newRows ridArray;
    5 empty ridArray;
    6 end;
    7 /
    Package created.
    SQL> create or replace trigger parent_bi
    2 before insert or update on parent
    3 begin
    4 state_pkg.newRows := state_pkg.empty;
    5 end;
    6 /
    Trigger created.
    SQL> create or replace trigger parent_aifer
    2 after insert or update of status on parent for each row
    3 begin
    4 state_pkg.newRows( state_pkg.newRows.count+1 ) := :new.rowid;
    5 end;
    6 /
    Trigger created.
    ---------------------now come my trigger instead of the following one ??---------------
    SQL> create or replace trigger parent_ai
    2 after insert or update of status on parent
    3 begin
    4 for i in 1 .. state_pkg.newRows.count loop
    5 insert into log_table
    6 select theKey, status, effDate
    7 from parent where rowid = state_pkg.newRows(i);
    8 end loop;
    9 end;
    10 /
    Trigger created.
    Regards,
    Abdetu..

  • ORA-04091: table name is mutating, trigger/function may not see it

    Hi,
    I have a row level before update trigger written on a table A which calls a procedure to undergo some processing. Procedure has some select queries against table A and it inturn causes the following error.
    ORA-04091: table name is mutating, trigger/function may not see it
    To overcome this I have used a combination of PL/SQL collection types (nested tables based on the following definition TYPE t_table_a is table of A.colname%TYPE index by binary_integer;), a row level before update trigger and statement level after update trigger. The mutating problem is fixed, but to update one row of data it took around 3 min and I am wondering if its the problem with PL/SQL tables I have used.
    In before update trigger I am storing the unique id's which needs to be updated into the PL/SQL table and in the after update trigger I am looping through the PL/SQL table and peforming the rest of the processing by calling in the procedure.
    Can anyone help how to minimize the run time of this process or if any other better solution exists?
    Thanks for the help

    Triggers raise the mutating table issue, because else they could be used to create endless loops. If you work around the mutating table issue, then you should make sure not to create an endless loop yourself. This would be possible.
    You description also seems to imply something like this.
    Without code it is impossible to say something specific.
    - Do you initialize your collection in a before statement trigger?
    - Is your looping mechanism somehow broken?
    - Do you update the same table again and again and again?

Maybe you are looking for

  • Problem in Receiver Mail Adapter

    Hello, Scenario : Proxy --->> Email with attachement(Text) I am sending the multiple records from proxy into the Email adapter where filename is dynamic and Receipient is also dynamic. So i have used the following blog. to achieve this funcitonality.

  • Set value upon checkout

    Hi!  I need to display a value for the dRevLabel upon checkin of the document.  The dRevLabel is always incremented upon Checkin process, and therefore the higher value is displayed for the user, which is incorrect for my business case. So I use the

  • How long after submitting the serial number does it take to receive your Mountain Lion download code?

    I bought my new MacBook Air on July 19 and received it on 26 and on that day I followed the steps to apply for the up-to-date program for Mountain Lion. I finished the process and got to the final page, where upon successful completion of the forms y

  • Text2d position help

    hi, i am creating some 2d text using           Text2D text2D = new Text2D("Spinner Game v1.0",           new Color3f(0.9f, 1.0f, 1.0f),           "Arial", 50, Font.BOLD);Does anyone know how i can change the position of this text as it appears on scr

  • Java - how to update settings table

    I have this table which is used to store settings into Oracle database I want to update the settings with java. I use this java code to update the settings: public void updateDBSettings() throws SQLException {         //here the values from the updat