Locking the record against update

Hi all,
I have a multirow database datablock. Some records I would like to lock against the update, and these records SHOULD be displayed as disabled - does not be able to be selected. So, the changing of default_where does not pass, becose the records should be displayed. Has anyone an Idea how to provide this?
Regards

Hi,
thanks for your updates.
The solution, that I need is:
Making the current record in the detail block non-updateable.
Regards

Similar Messages

  • SDO gives JBO-26030: Failed to lock the record, another user holds the lock

    Hi,
    I have a question thats on the boundary between ADF and BPEL but I posted in this forum because its highly related to ADF Model with Service Interface.
    We have a BPEL batch process that spawns multiple child BPEL processes that handle threads inside the batch in parallel. These child processes all update the same batch record in a database with for example the lastActionDateTime. We do this by invoking an update service on a SDO application that we built following this tutorial: http://jianmingli.com/wp/?p=2838
    It all works good but sometimes when updating the same row from multiple BPEL process instances at the same time, we sometimes get a SDO JBO-26030: Failed to lock the record, another user holds the lock.
    I'm a bit stunned by this, because all we really do is updating a record. From BPEL we just invoke the updateBatch webservice method of the Service Interface.
    I can imagine that there will be wait time when these updates come in at the same time, but I didn't expect an exception would occur. Also the arbitrariness confuses me. If a child process would lock the record, I would expect this error to happen always and not at random.
    From BPEL the error displays as follows:
         <fault>
              <bpelFault>
                   <faultType>1</faultType>
                   <ServiceException>
                        <part  name="ServiceErrorMessage">
                             <tns:ServiceErrorMessage>
                                  <tns:code>26030</tns:code>
                                  <tns:message>JBO-26030: Failed to lock the record, another user holds the lock.</tns:message>
                                  <tns:severity>SEVERITY_ERROR</tns:severity>
                                  <tns:exceptionClassName>oracle.jbo.AlreadyLockedException</tns:exceptionClassName>
                             </tns:ServiceErrorMessage>
                        </part>
                   </ServiceException>
              </bpelFault>
         </fault>However when I dive into soa_server1-diagnostic.log I see the following exception:
    [2011-10-28T17:37:37.770+02:00] [soa_server1] [ERROR] [] [oracle.jbo.server.svc.ServiceJTATxnHandlerImpl] [tid: [ACTIVE].ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: a1484c49db38e963:-581f01fc:13345d7173d:-8000-00000000000322f4,0:1:0x5f5e2bf:33] [WEBSERVICE_PORT.name: ECMControllerSDOServiceSoapHttpPort] [APP: ECMControllerSDO] [composite_name: ECMProcessController] [component_name: ProcessControllerBPEL] [component_instance_id: 240335] [J2EE_MODULE.name: ECMControllerSDO] [WEBSERVICE.name: ECMControllerSDOService] [J2EE_APP.name: ECMControllerSDO] [[
    oracle.jbo.RowInconsistentException: JBO-25014: Another user has changed the row with primary key oracle.jbo.Key[CDS_20111028_8 ].
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelectForAltKey(OracleSQLBuilderImpl.java:1077)
         at oracle.jbo.server.BaseSQLBuilderImpl.doEntitySelect(BaseSQLBuilderImpl.java:553)
         at oracle.jbo.server.EntityImpl.doSelect(EntityImpl.java:8134)
         at oracle.jbo.server.EntityImpl.lock(EntityImpl.java:5863)
         at oracle.jbo.server.EntityImpl.beforePost(EntityImpl.java:6369)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6551)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3275)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3078)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2088)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2369)
         at oracle.jbo.server.DefaultJTATxnHandlerImpl.commit(DefaultJTATxnHandlerImpl.java:156)
         at oracle.jbo.server.svc.ServiceJTATxnHandlerImpl.commit(ServiceJTATxnHandlerImpl.java:216)
         at oracle.jbo.server.svc.ServiceJTATxnHandlerImpl.beforeCompletion(ServiceJTATxnHandlerImpl.java:124)
         at sun.reflect.GeneratedMethodAccessor2677.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at oracle.jbo.server.svc.WLSContextCrossAppProxy$WLSCrossAppProxy.invoke(WLSContextCrossAppProxy.java:66)
         at $Proxy377.beforeCompletion(Unknown Source)
         at weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(ServerSCInfo.java:1239)
         at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:1214)
         at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:116)
         at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:1316)
         at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:2132)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:272)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:239)
         at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:625)
         at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(StatelessRemoteObject.java:49)
         at weblogic.ejb.container.internal.BaseRemoteObject.__WL_postInvokeTxRetry(BaseRemoteObject.java:444)
         at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:53)
         at nl.kpn.ecm4crm.am.server.serviceinterface.ECMControllerSDOServiceImpl_51vl7y_ECMControllerSDOServiceImpl.updateBatches(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
         at $Proxy373.updateBatches(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:355)
         at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:196)
         at oracle.j2ee.ws.server.jaxws.JAXWSRuntimeDelegate.processMessage(JAXWSRuntimeDelegate.java:479)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1081)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:232)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:192)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.jbo.server.svc.ServiceContextFilter.doFilter(ServiceContextFilter.java:78)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)Thank you for reading, any directions suggestions on how to solve this will be highly appreciated.
    regards,
    Gerben

    Thanks Frank.
    Already tried that , please let me know if there is any other way to get this .
    This is being discussed here :
    Re: Update without No wait
    and i am following what John Stegeman has suggested.

  • How can we lock the table?? how can we lock the record

    Hi
    how can we lock the complete table?? how can we lock the record ?/
    Thanks
    Rama

    Lock objects are used to lock the database table while making the modifications on the database table.
    you can create your own lock objects using SE11.
    if you create lock objects on any table system will create two function modules.
    1.ENQUEUE....
    2.DEQUEUE.....
    first one is used to lock the table
    second one used to removing lock on the table.
    lock Table
    CALL FUNCTION 'ENQUEUE_E_TABLE'
    EXPORTING
    tabname = table_name
    EXCEPTIONS
    foreign_lock = 1
    system_failure = 2
    OTHERS = 3.
    Unlock Table
    CALL FUNCTION 'DEQUEUE_E_TABLE'
    EXPORTING
    tabname = table_name
    check this link :
    http://help.sap.com/saphelp_40b/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    _SCOPE = 1: The lock is not sent to the update program. The lock is removed when the transaction is ended.
    _SCOPE = 2: The lock is sent to the update program. The update program is responsible for removing the lock. The dialog program which requested the lock no longer has an influence on the lock behavior. This is the standard setting for the ENQUEUE function module.
    _SCOPE = 3: The lock
    Re: lock objects
    Reward if this helps.

  • How to lock the record in the Form

    .How to lock the record
    That is In my customized form if user query the record in one of our Customized form and the system automatically should prevent by quering the same record by other user for the same form .The message to be displayed as locked by another user .
    For example in standard form the same option is available.
    Form Name:GMEBCHED.FMB
    Module:ORACLE PROCESS MANUFACTURING(OPM)
    Could you pls help us how to implement the same for our Customized form .
    Appricaiate your help .
    Regards,
    Radha krishnan

    Hi,
    I tried to put the code under Post-Query trigger. Since user can input the selection criteria in the form. After the form open, after I input the "Update user" ID (this is in the non-base table block), the oracle message prompt: FRM-40653: Record not reserved for update or delete. Try again later..
    So, is there any method to solve it?
    Thanks a lot.
    Regards.

  • Error - Unable to lock the record.

    Error - Unable to lock the record. Cause: The record is being modified by another user.
    Hi all,
    I encountered the error above after deleting a record from a table then clicking the next button(train). Please help.
    Thanks.
    Maeve

    the two most probable possible reasons for this error:
    1)When your program tried to delete the partiular record, somebody from back-end has deleted the record.
    2)Your program is not commiting after doing the transaction.
    Also,Check out this thread :
    Re: save button - Unable to perform transaction on the record. stale data,
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • JBO-26030: Failed to lock the record, another user holds the lock.

    Hi, i am using value change listener to a discount percentage field & after calucalion for the first time it will give the discount amount value & filling that field. But for the second attempt it is showing nothing but printing correct values in the console.it is not getting refresh.
    and also i am getting this error:JBO-26030: Failed to lock the record, another user holds the lock.

    based on Jdev documentation, re-execute the query solved the problem.

  • Servlet Database I/O: How to "lock" a record being updated ?

    Say you have a servlet that displays a list of customers in HTML page, and a button on each customer to click to bring up another page (servlet generated) with the customer info to edit. The customer info is in a database file (could be Access or ORACLE). User makes any changes and clicks a button to update the customer record (with a servlet).
    How do you prevent two users from editing the same customer record at the same time? I do not want to lock the whole file, just a record.
    Any pointers towards info about this subject appreciated.
    Walk Good

    sridharranganathan, does your technique assume that the read operation is locked, so that two users cannot obtain the same value of LockCounter?
    I have some questions relevant to the following code:
    public class theServlet extends HttpServlet
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
         throws ServletException, IOException
             Helper theHelper = new Helper();
             theHelper.setUser(req.getCookies);
             resp.setContentType("text/html");
                PrintWriter out = new PrintWriter(resp.getOutputStream());
                Connection con = null;
             try
                   SybDriver sybDriver = (SybDriver) Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance();
                   sybDriver.setVersion(com.sybase.jdbcx.SybDriver.VERSION_5);
                   DriverManager.registerDriver(sybDriver);
                   con = DriverManager.getConnection("jdbc:sybase:Tds:dbsrv1:3520/hospcap", "myuserid", "mypassword");                 if (con != null) {
                  if(theHelper.getUserRecord(con, this)) {
                           //do some stuff
                        else { //do some other stuff }
                        con.close();
                 }catch(Exception e) { //whatever }
                 finally { out.flush(); }
             } //end doGet()
    } //end class
    public class Helper {
        private String user = "";
        private String field1Val= "";
        private String field2Val= "";
        public boolean setUser(Cookie [] cookies) {
         // method gets the user's userid from a cookie and then:
            user = user_id_from_cookie;
       public boolean getUserRecord(Connection con, theServlet serv){
            StringBuffer sb = new StringBuffer();
            Statement stmt = null;
         try {
             //Try to get the user's info:
                stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
             StringBuffer sql = new StringBuffer("SELECT field1, field2 FROM UserRecords WHERE user_id = '" + user + "'");
             ResultSet rs = stmt.executeQuery(sql.toString());
                rs.last();
                int nrows = rs.getRow();
                if(nrows < 1) { //user doesn't have an entry in the table yet.
                 //First, get result set of records with blank userids:
                 sql.replace(0, sql.length(), "SELECT * FROM UserRecords WHERE user_id = '' OR user_id = NULL ORDER BY field1");
              rs = stmt.executeQuery(sql.toString());
                    rs.last();
                    nrows = rs.getRow();
                 if(nrows > 0) {
                     //there ARE some records with null user_id, so assign this user to the first one:
                        rs.first();
                     field1Val = rs.getString("field1").trim();
                     field2Val = rs.getString("field2").trim();
                        //QUESTION: IS IT POSSIBLE THAT TWO USERS/THREADS HAVE THE SAME VALUE OF field1Val AT THIS POINT?
                     sql.replace(0, sql.length(), "UPDATE UserRecords SET user_id = '" + user + "' ");
                     sql.append(" WHERE field1 = '" + field1Val+ "' AND user_id is NULL");
                  con.setAutoCommit(false);
                  //Trying to use transaction isolation to prevent two users from updating the same record.
                  //Does this only work if the users share the connection, con?
                  int level = con.getTransactionIsolation();
                  try {
                      if(con.getMetaData().supportsTransactionIsolationLevel(con.TRANSACTION_READ_COMMITTED)) {
                          con.setTransactionIsolation(con.TRANSACTION_READ_COMMITTED);
                            //SYNCHRONIZE ON SERVLET INSTANCE?
                      //synchronized(serv){
                            nrows = stmt.executeUpdate(sql.toString());
                  }catch(SQLException se) {
                         con.rollback();
                         con.setAutoCommit(true);
                         con.setTransactionIsolation(level);
                         stmt.close();
                         return false;
                     con.commit();
                     con.setAutoCommit(true);
                     con.setTransactionIsolation(level);
                        if(nrows < 1) { //couldn't update the db.
                         stmt.close();
                         return false;
                     else {
                         stmt.close();
                         return true;
                 else { //There aren't any unused records; deal with it.
                     stmt.close();
                     return false;
                else { // the user has an entry in the table
                    rs.first(); //should only be one record for this userid.
                    field1Val = rs.getString("field1").trim();
                    field2Val = rs.getString("field2").trim();
                    stmt.close();
                 return true;
            }catch(SQLException se) {
             //some problem not caught elsewhere
             return false;
       } // end getUserRecord
    } // end class HelperI should say that the UserRecords table now contains about 5000 records (this will grow in increments of 5000), many of which have null user_id. If the value is not null, then it contains a userid. A user can have either zero or one entry in the table.
    Here are my questions regarding the above:
    1. In the servlet, each thread will have its own instance of Helper and of Connection, correct?
    2. I want to ensure that only one thread can update a particular UserRecords table record at a time. In the getUserRecord method, please note the line where field1Val is assigned, just above the capitalized QUESTION comment. Is it possible that two threads could have the same value of field1Val at the same time?
    3. When you set the transaction isolation level for connection1, does that prevent other threads that are using other connections to the database from accessing records being updated by the thread using connection1?
    4. As you can see, I am considering passing a reference to the servlet instance into the getUserRecords method and synchronizing the update statement on the servlet instance. Will that ensure only one thread at a time can update the record, without using the transaction isolation code?
    Thanks in advance for your answer.

  • How to find exactly who lock the records

    hi:
    Session1: lock a record for example
    Select e.* from employees e where e.employee_id = 7034 for update;
    Session2: try to lock the same record:
    Select e.* from employees e where e.employee_id = 7034 for update nowait;
    After exception ora-00054 raised query this statement:
    Select Vs.Sid,
    Vs.Client_Identifier,
    Vs.Action,
    Vs.Status,
    Vs.Machine,
    Vs.Terminal,
    Vs.Logon_Time,
    Dmlock.Name
    From Dba_Dml_Locks Dmlock,
    V$session Vs
    Where Dmlock.Session_Id = Vs.Sid
    And Vs.Sid =
    (Select Distinct First_Value(Ash.Blocking_Session) Over(Order By Ash.Sample_Time Desc)
    From Sys.v_$active_Session_History Ash
    Where Ash.Session_Id = Sys_Context('USERENV', 'SID'))

    session #1
    21:28:14 SQL> Select e.* from employees e where e.employee_id = 206 for update;
    EMPLOYEE_ID FIRST_NAME           LAST_NAME
    EMAIL                     PHONE_NUMBER         HIRE_DATE JOB_ID         SALARY
    COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
            206 William              Gietz
    WGIETZ                    515.123.8181         07-JUN-94 AC_ACCOUNT       8300
                          205           110
    21:28:39 SQL> session #2
    SQL> set time on
    21:29:25 SQL>  Select e.* from employees e where e.employee_id = 206 for update nowait;
    Select e.* from employees e where e.employee_id = 206 for update nowait
    ERROR at line 1:
    ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
    21:29:51 SQL> session #3
    21:30:18 SQL> SELECT Vs.sid,
           Vs.client_identifier,
           Vs.action,
           Vs.status,
           Vs.machine,
           Vs.terminal,
           Vs.logon_time,
           Dmlock.name
    FROM   dba_dml_locks Dmlock,
           v$session Vs
    WHERE  Dmlock.session_id = Vs.sid
           AND Vs.sid = (SELECT DISTINCT First_value(Ash.blocking_session)
                                           over(
                                             ORDER BY Ash.sample_time DESC)
                         FROM   sys.v_$active_session_history Ash
                         WHERE  Ash.session_id = Sys_context('USERENV', 'SID')) 21:30:44   2  21:30:44   3  21:30:44   4  21:30:44   5  21:30:44   6  21:30:44   7  21:30:44   8  21:30:44   9  21:30:44  10  21:30:44  11  21:30:44  12  21:30:44  13  21:30:44  14  21:30:44  15  21:30:44  16 
    21:30:46  17  /
    no rows selected
    21:30:49 SQL> Your results are duly UNDERWHELMING!

  • User which locked the record

    Maybe somebody knows how to get the correct user which locked a record. The best way would be over the rowid of this record. I make a select for update nowait, then i get an exception. That means the record is locked. Now how can i get the user which locked this record ?
    Thanks for your help

    I can't believe that nobody has a solution for that !
    If somebody has a solution that will be nice. Thank you

  • Possible to overwrite a pdf when in use or open a pdf without holding/locking the file for update

    Possible to overwrite a pdf when in use OR alternative open a pdf without holding/locking the file
    We frequently generate pdf files from our 3D program and would like to know if it's possible to either open a pdf file in a way that it doesn't get locked or hold up so the pdf can be updated even when opened or in use.
    Most programs e.g. ultra edit & notepad will let go the file when you opened and hence the file can be updated or over written even when in use.
    If any guru can help, would be highly appreciated

    Hi Abbas,
    It's not possible to overwrite a pdf when it is already in use by a different program or user. The file then opens up in Read Only mode.
    You can make a copy of the file and then apply those changes later in the original file. That's the only possible solution.
    Regards,
    Rahul

  • How To Hide the Record after Update from ADF Front End

    Hi Every One,
    I have done the Scenario of Database Table rows displayed in ADF front end. It is editing and updating also. My Query is after update the record, how to hide that record from adf front end.
    Could any one please help me.
    Thanks,
    Narasimhulu.S

    hi you can create transient field in view object indicate to visibility of row (boolean ) and create view criteria that show only rows that are able to be visible according to transient attribute and at the update process set the attribute to true inside entityImpl class

  • How to find out the user who locked the record

    i can't delete a particular record from a table while executing the delete command its showing an error specifying
    that "ORA-02049: timeout: distributed transaction waiting for lock"
    syntax i used
    delete from <table_name> where <column_name>='<value>'

    Hi,
    select username,lockwait,process,sql_hash_value from v$session. Find the user who is having more lock wait
    See the lock wait has more value notedown has_value
    select sql_text from v$sqltext where has_value="Noted value " find the query whether your table is calling by the user.

  • How to select and duplicate the records and update some column values using cursor

    I have a table with 920 records, we need to update the end date to 6/30/2014 for 920 records and I need to create all 920 records with start date is 7/1/2014 and update the external value to
    CCC.
    Note: the table primary key is not auto increment, but I have sp to get the latest key for that.
    Existing table.  
    ID
    Source Name
    Internal value
    External value
    Start date
    End date
    1
    XXX
    AAA
    BBB
    1/1/2013
    6/30/2015
    Create new records
    ID
    Source Name
    Internal value
    External value
    Start date
    End date
    921
    XXX
    AAA
    CCC
    7/1/2013
    12/30/2015

    Hi ManuGT
    If I understand what you need then you ask for:
    1. updating all current rows (920 rows in the table now)
    2. insert new rows which are duplicates of the preiviews rows, but with value 'CCC' insteade of 'BBB'
    If so, there is not reason to use a cursor and it is highly NOT RECOMMENDED to use ant type of loop.
    You should work with SET and do it all in 2 simple queries:
    -- first we duplicate the existing rows,
    -- but we use the values 'CCC" and '20140107' for the new rows values
    INSERT test (SourceName, InternalValue, ExternalValue, StartDate, EndDate)
    select SourceName, 'CCC', ExternalValue, '20140107' , EndDate
    from test
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    -- Now we update the old rows (check the filter! I get only the old rows since I filter the new rown out)
    UPDATE test
    SET EndDate = '20140107' -- I use date in format yyyymmdd, You can use other formats as well
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    Unfortunately you did not post DDL+DML! Therefore we cant see your table structure and the data sample and we can only guess. I used Saeid's post as the basic DDL+DML.
    Please next time post DDL+DML
    here is the full code with the DDL+DML that i used:
    -- This is our DDL - A create table query:
    create table test
    ( id int identity(1,1) primary key,
    SourceName nvarchar(3),
    InternalValue nvarchar(3),
    ExternalValue nvarchar(3),
    StartDate date,
    EndDate date
    go
    -- This is our DML - A query that insert some sample data
    declare @i int = 1 ;
    while @i < 921
    begin
    insert test (SourceName, InternalValue, ExternalValue, StartDate, EndDate)
    values ('XXX', 'AAA', 'BBB', '1/1/2014', '6/30/2014' ) ;
    set @i += 1 ;
    end ;
    GO
    -- Here is the solution for the problem as I understood your needs:
    -- first we duplicate the existing rows,
    -- but we use the values 'CCC" and '20140107' for the new rows values
    INSERT test (SourceName, InternalValue, ExternalValue, StartDate, EndDate)
    select SourceName, 'CCC', ExternalValue, '20140107' , EndDate
    from test
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    -- Now we update the old rows (check the filter! I get only the old rows since I filter the new rown out)
    UPDATE test
    SET EndDate = '20140107' -- I use date in format yyyymmdd, You can use other formats as well
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    -- Here we just check how the result look like :-)
    select *
    from test ;
    -- And since we do not realy need this table in our server... Here we clean the DDL (you probaby DO NOT WANT TO EXECUTE THIS!)
    DROP table test
    GO
    I hope this was useful :-)
    [Personal Site] [Blog] [Facebook]

  • ADF - Locking the record ???

    I am using Jdeveloper 11.1.2.3.0. I am very new to ADF environment.
    In my use case. There are 2 systems, from both the users can access the candidate records concurrently. one system is implemented in ADF and other is in Forms.
    From forms environment when a candidate record is opened and when the same record is tried to open in the ADF system it throws a message saying "Record Locked".
    My requirement is to issue the same kind of error message when the candidate record is first opened in the ADF system and tried to open from other system.
    Could some one guide me ???
    Thanks in advance.
    Edited by: 977844 on Jan 14, 2013 9:24 AM

    Hi.
    By default, ADF 11.2 uses optimistic locking. This means instead of locking a row as soon as it is changed, the framework waits until the changed row is committed before attempting to obtain a lock.
    What you need is pessimistic locking: If anyone else tries to get a lock of the same row during this process, he will be forced to wait until the first transaction has completed. You can enable it by editing the adf-config.xml file.
    You need to be careful, however. Every time an application module is recycled, a rollback is issued on the JDBC connection. This releases all the current locks established through the connection. Thus, all changes that were posted but not commited are lost. One possible way to mitigate that would be to disable JDBC connection pooling (jbo.doconnectionpooling = false).The jbo.doconnectionpooling configuration parameter is set by checking the Disconnect Application Module Upon Release property on the Pooling and Scalability tab of the Business Components Configuration dialog. This will severely limit the scalability of you application, however. You will consume more resources on the database server, also, since you will hold on more database connections than really needed.
    Best Regards,
    Frédéric.

  • How to insert past record after updating the master table in history table through store PROC

    Master Table
    Party Status
    A Active
    B Inactive
    C Active
    D Inactive
    Duplicate Table
    Party Status
    A Active
    B Active
    C Active
    D Inactive
    Updated Master Table
    Party Status
    A Active
    B Active
    C Active
    D Inactive
    Party History Table
    B Inactive
    I have two table one master and another duplicate I need to update master table based on duplicate table insert the record which updated into Party history table as shown above. need help to write store proc.

    Check MERGE syntax in BOL (example D). There should be a sample with output, e.g.
    insert into PartyHistory (Party, [Status])
    select Party, [Status] FROM
    (MERGE Master M using Duplicate D on M.[Party]=D.[Party]AND M.[Status]<>D.[Status]
    WHEN MATCHED THEN UPDATE
    SET [Status] = D.[Status]
    OUTPUT Deleted.[Party], Deleted.[Status], $Action) AS Changes (Party, [Status], Action) WHERE Action = 'UPDATE'
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

Maybe you are looking for

  • Is there a way to add two windows in the same window?

    is there a way to add two windows in the same window?

  • CS3, 3d apps and  Pro apps on a mac book

    I'm really torn between getting the macbook pro and the macbook. It boils down to money at the end of the day. But what i need to know before choosing which to go for, is how well do apps like Photoshop, Illustrator, Indesign, Dreamweaver and Cinema

  • Idea for forums - better topic management

    This issue is partly (not entirely) caused by evul help vampires avoiding Google, the Wiki, and the forum search, but... What if the forums were redesigned? Two separate main categories: Issues and Other. Issues would have a different structure: Inst

  • Additional field in vl10

    I need to add transportation zone and region on vl10 screen. I worked with my developers and got the fields and developed a layout through VOL1, but am still unable to see the field on the VL10 screen. What am i ding wrong? Do I need to use enhanceme

  • Schedule Job Failed

    I submitted a job using enterprise manager and the job was fail with the error message "VNI-2015 : authentication error". The preferred credentials setting for database is "sys" and for the node is domain administrator. Running Oracle8i and EM2.0 on