Problem updated 16 rows, it updates all rows in the table

I tried to update of 16 ranks with AL as the name of divion with the script as below:

Update wire_center set a.wg_id = '63'
where EXISTS (select b.div_name from wire_center, title b, area c, ns_workgroups d).
where B.DIV_NAME =' al ' AND a.dis_id = c.dis_id and b.div_id = c.div_id and d.wg_id = a.wg_id);

When I run it, it updates all rows in the table.

However when I run the select subquery, it returns 16 ranks.

It seems where EXISTS is the problem. If I exist, it gave me error ora-00936.

How to fix? Need urgent help please. DB is 10g.

Thanks in advance.

If I understand correctly what you want, you must not include wire_center once again in the second select (in your clause).
The second selection has no relationship to the table you're updating, so because select the second returns 16 rows, it is always set to true will. For each line. If all the rows will be updated.

Instead of

Update wire_center a set a.wg_id='63'
where EXISTS (select b.div_name from wire_center a, division b, district c, ns_workgroups d
where B.DIV_NAME='AL' AND a.dis_id=c.dis_id and b.div_id=c.div_id and d.wg_id=a.wg_id );

Try this:

Update wire_center a set a.wg_id='63'
where EXISTS (select b.div_name from division b, district c, ns_workgroups d
where B.DIV_NAME='AL' AND a.dis_id=c.dis_id and b.div_id=c.div_id and d.wg_id=a.wg_id );

Published by: big on 29-dec-2010 14:27

Tags: Database

Similar Questions

  • Rows in the table LT until merger of all workspaces

    Database 11.2.0.4

    In our environment, we ran a few important updates in the workspaces and then merged these live workspaces.  Up to 25% of the data has been updated in those workspaces.  When these update batch workspaces have been created, previous workspaces exist who are not yet ready for the merger.

    I noticed that the underlying tables of the LT now have about 25% more lines than the live view.  We have now discovered that dbms_wm.refreshWorkspace works really poor.  This statement is used to take seconds or minutes to the maximum, but can now take half an hour or more.

    We recorded a support with Oracle request and provided details of the plan to see if we can get some resolution/advice explaining.

    In the meantime, I have a question for the forum help my understanding of the works of the Manager of the workspace.

    In the example below, I have table "wm_test_table", "test_workspace1" and "test_workspace2".  In "test_workspace1", I update all rows in the table - the table LT now has 2 rows for each record.  I merge 'test_workspace1' live and LT still has 2 rows for each record.  The other lines are not removed until "test_workspace2" is merged and removed.


    SQL> -- Create a test table
    SQL> create table wm_test_table (
      2     id integer primary key,
      3     name varchar2(100));
    
    
    Table created.
    
    
    SQL> -- Insert 1,000 rows
    SQL> insert into wm_test_table (
      2     select rownum, 'before'
      3     from dual
      4     connect by level <= 1000);
    
    
    1000 rows created.
    
    
    SQL> commit;
    
    
    Commit complete.
    
    
    SQL> -- Version enable it
    SQL> execute dbms_wm.enableVersioning('wm_test_table');
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> -- Create two workspaces
    SQL> execute dbms_wm.createWorkspace('test_workspace1');
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> execute dbms_wm.createWorkspace('test_workspace2');
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> -- Go to test_workspace1 and update all the rows
    SQL> execute dbms_wm.goToWorkspace('test_workspace1');
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> update wm_test_table set name = 'after';
    
    
    1000 rows updated.
    
    
    SQL> commit;
    
    
    Commit complete.
    
    
    SQL> -- Check how many rows in wm_test_table_lt - we expect 2,000 as we haven't merged yet
    SQL> select count(*) from wm_test_table_lt;
    
    
      COUNT(*)
    ----------
          2000
    
    
    SQL> -- Merge and remove test_workspace1
    SQL> execute dbms_wm.goToWorkspace('LIVE');
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> execute dbms_wm.mergeWorkspace('test_workspace1', remove_workspace=>true);
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> -- Check how many rows in wm_test_table_lt
    SQL> -- I'd hope there'd only be 1,000 but there is 2,000
    SQL> select count(*) from wm_test_table_lt;
    
    
      COUNT(*)
    ----------
          2000
    
    
    SQL> -- Let's see if compressWorkspace will get rid of them
    SQL> execute dbms_wm.compressWorkspace( -
    >       workspace => 'LIVE',   -
    >       auto_commit => true,   -
    >       remove_latest_deleted_rows => true);
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> -- They're still there
    SQL> select count(*) from wm_test_table_lt;
    
    
      COUNT(*)
    ----------
          2000
    
    
    SQL> -- Now merge test_workspace2
    SQL> execute dbms_wm.mergeWorkspace('test_workspace2', remove_workspace=>true);
    
    
    PL/SQL procedure successfully completed.
    
    
    SQL> -- and the additional 1,000 rows are removed
    SQL> select count(*) from wm_test_table_lt;
    
    
      COUNT(*)
    ----------
          1000
    

    Is it possible to safely remove the extra lines in LT without waiting until we merged the workspaces that existed before the update batch has been done?  I hope that it will so improve the performance of refreshWorkspace.


    I thought that something like this can do, but it does not remove the other ranks, is:

    execute dbms_wm.PurgeTable(
     table_id => 'test.wm_test_table', 
     archive_table => null, 
     where_clause => 'id not in (select id from test.wm_test_table)', 
     instant=>null, 
     workspace => 'LIVE', 
     purgeAfter => false);
    

    This question is similar to

    Lines left in the table LT after removal of the direct workspace and the removal of all workspaces

    and

    How to delete soft deleted records?

    but I'm still not sure.

    Thank you

    John

    Hello

    This behavior is expected and it is due to the test_workspace2 workspace.  A compression operation will not allow compressed range to include a backup implicit point that is created for a child workspace.  This is done to preserve the integrity of this workspace.  The initial 1000 lines are all lines that are visible from test_workspace2.  Removal of these lines would leave test_workspace2 will 0 lines in there.  Lines 1000 updates are the lines that do not appear on LIVE.  So, given that the two sets of lines are needed, none of the lines can be deleted physically.  A compression operation will never change the view of data for any workspace.  It only removes the unnecessary records.  The two options in order to be able to compress these lines is to either delete (as you did) or refresh test_workspace2.  The refresh operation would move the implicit savepoint for the workspace to a version that isn't after all 2000 lines in the table _LT and allow the dressing to remove first half of them because they are no longer needed by any child workspace.

    With respect to the performance of RefreshWorkspace, I would need to see a trace of the transaction file.  But who should rather get through the SR you filed.

    Kind regards

    Ben

  • problem of adjustment of height of the rows in the tables in CS6

    I read all the debates devoted to setting the height of the rows in the tables and I can't find the answer to my problem.

    I placed a table that was created in Word.  I've done several times, but now I can not adjust the heights of less than 5mm line without losing the text in the line.  I went up to line on "exactly".  As soon as I try to reduce the height of the text disappears, but there is plenty of space above and below the text.   Hoping someone can help.

    Check the cell INSET on the cell options.

  • Problem with the removal of the first row of the table

    Hi all

    I have a problem with my forms with tables where I have buttons to add or remove rows from the table. Adding the lines works fine but deleting lines has a problem when deleting the first row. Example: Here is a table with two rows where column 1 has the add and remove buttons and column 2 user imput that looks like this:

    Column 1
    Column 2
    Add and remove buttons hererank 1
    Add and remove buttons hererank 2
    Add and remove buttons hererank 3

    If the user deletes line 2 the table looks like which is correct:

    Column 1
    Column 2
    Add and remove buttons hererank 1
    Add and remove buttons hererank 3

    If the user deletes line 1 then the table looks like which is false since the ranks 2 and 3 should be left:

    Column 1
    Column 2
    Add and remove buttons hererank 1
    Add and remove buttons hererank 3

    The code is pretty simple:

    Table3.row2.instanceManager.addInstance (1); for the click event of the button Add line

    Table3.row2.instanceManager.removeInstance (1); for the click event of the button Delete line

    What I am doing wrong?

    Thanks in advance!

    Al

    The expression will be based on your structure... done .This refers to the current object, parent refers to the container parent of this object and index is the index of this object. So watching your hierarchy and from the key, you will need this.parent to join the line subform is it in (usually it is th esubform that repeats). If it's in a subform, you will need to add another parent. Continue on this road until you get to the repeating subform and then ask its index. Your expression might look like this.parent.parent.parent.index. Using this.index, you find the instance of the button object and there are just people and that's why you always get 0.

    Make sense?

    BTW your form is attached not... so I can't check what you should put it.

    Paul

  • all rows in the table are not eligible for the specified partition

    SQL > Alter Table ABC
    Exchange 2 Partition P1 with Table XYZ;

    Modified table.

    SQL > Alter Table ABC
    Exchange 2 Partition P2 with Table XYZ;


    P2 Partition Exchange with XYZ Table
    *
    ERROR on line 2:
    ORA-14099: all rows in the table are not eligible for the specified partition

    The exchange partition works fine for the first time. However, if we try to swap the 2nd partition it gives the error.
    How to solve this error?
    How can I find the lines which are not qualified for a specific part. is there a query to find out the same thing?

    >
    Well, exchange of syntax and logic is not clearly as it should (IMHO). There is no element of syntax that tells Oracle we want to Exchange partition data in a table that is not partitioned or not partitioned into partition table data.
    >
    What? Not sure where you got that but maybe it was before you had first cup of coffee? ;)

    An "Exchange", it's just that; an Exchange. Partition data end up in the non-partitioned table and vice versa. It is meaningless and totally obsolete if "we want Exchange partition data in a table that is not partitioned or not partitioned into partition table data".
    >
    It was decided by Oracle not partitioned table control. If the non-partitioned table is empty, it means you want to Exchange data partition in a non-partitioned table. And if not partitioned table is not empty, it means you want to Exchange data in the table that is not partitioned into partition.
    >
    There is no decision to make. The segments are swapped. Oracle doesn't check, know or even care if one or the other or both segments are empty. 'Control' which is carried out (by default except if NO CONTROL is used) only consists of ensuring all the data in the segment intended for the partition belongs to this partition.

    It is what gives the example of John. This can NEVER work if table1 is empty unless p1 is empty at the beginning:
    1 Exchange p1 with table1
    2 Exchange p2 with table1

    As John explains, assuming that no other operations are trying to put the data from p1 P2 which is not possible if p1 actually contains data.

    You can save it for next April 1!

  • Any way to update all items at the same time?

    Any way to update all items at the same time?

    is one by one, the only way to update?

    I have 68 articles up to 800 MB.

    Unfortunately, the team has not added an update all feature. I think that this is scheduled for February.

    If you have your folders and files properly configured with a sidecar.xml file, consider the deletion and re-creation of the folio.

  • Request from oracle to MySql using dblink read all rows in the table

    Hello
    I use the heterogeneous connectivity between oracle 10204 to the Mysql database.
    I have a database of link on the side of the oracle.
    I request a table in MySql with 10 million rows.

    His is not serious if I am running:
    ' Select * from ' CDR_Accounts"@mysql where 'id '= 7675405;
    or
    Select * from 'CDR_Accounts"@mysql;

    There is an index on the column id.
    It seems that the Mysql is feteching all rows in the table, all data is transferred to oracle on the dblink and only after the required lines are back to the client.

    The /etc/odbcinst.ini file is as follows:
    [odbcprd:oracle@odbc /software/oracle]$ cat /etc/odbcinst.ini
    [myodbc3]
    Description             = Mysql connector to mysql version 3.5
    Driver          = /software/oracle/MysqlOdbc/3.52/lib/libmyodbc3-3.51.25.so
    Driver64                = /usr/lib
    Setup           = /software/oracle/MysqlOdbc/3.52/lib/libmyodbc3S-3.51.25.so
    Setup64         = /usr/lib
    UsageCount              = 1
    CPTimeout               = 3600
    CPReuse         = 
    Please advice

    Thank you

    Initialization of gateway open tha file located in $ORACLE_HOME/hs/admin called init .ora and change HS_FDS_TRACE_LEVEL to HS_FDS_TRACE_LEVEL =WE.

    ATTENTION:
    Do not forget t turn off after all your tests.

  • Questions about the reorganization of the rows in the table by drag-and - drop feature

    I am referring to the demo: 106. Drag-and-drop the reorganization of the rows of the table in aCorner of Code DF to implement my case.

    I am facing some problems:

    1. the view object (bound to the table) is read only and it is created directly by very complex SQL queries, without entity objects. When it is run the code: dragRow.removeAndRetain () in the method: DnDAction processDrop (DropEvent dropEvent), it throws the error so that a guest view object is read-only. I want to know if there is another way to delete the moved collection line?

     public DnDAction processDrop(DropEvent dropEvent) {
    ...       
           CollectionModel collectionModel = (CollectionModel) table.getValue();        
            JUCtrlHierBinding treeBinding = (JUCtrlHierBinding) collectionModel.getWrappedData();
            
            //get access to the ADF iterator binding used by the table and the underlying RowSetIterator.
            //The RowSetIterator allows us to remove and re-instert the dragged row
            DCIteratorBinding departmentsIterator = treeBinding.getDCIteratorBinding();               
            RowSetIterator rsi = departmentsIterator.getRowSetIterator(); 
    
            int indexOfDropRow= rsi.getRangeIndexOf(dropRow);
           //get access to the oracle.jbo.Row instance represneting this table row
           Row dragRow = (ViewRowImpl)table.getRowData(draggedRowKey);
           //remove dragged row from collection so it can be added back
           dragRow.removeAndRetain();
           rsi.insertRowAtRangeIndex(indexOfDropRow, dragRow);
          ...
    }
    

    2. When you click on a button, I need to save the command results in the database using the command update # of each rank. Here it is the handler method for the event of the action (in MB) button.

    I want to use RowSetIterator table for encode it from all ranks and update the value # order of each rank.   I call a data control method to run sql update. is it ok? any suggestion?

        public void processSaveOrder(ActionEvent actionEvent) {
            CollectionModel collectionModel = (CollectionModel) mytable.getValue();        
            JUCtrlHierBinding treeBinding = (JUCtrlHierBinding) collectionModel.getWrappedData();
            
            //get access to the ADF iterator binding used by the table and the underlying RowSetIterator.
            //The RowSetIterator allows us to remove and re-instert the dragged row
            DCIteratorBinding iterator = treeBinding.getDCIteratorBinding();               
            RowSetIterator rsi = iterator.getRowSetIterator();
            Row row =rsi.first();
            System.out.println(0+"="+ row);
            int i = 1;
            while(rsi.hasNext()){
                row = rsi.next();
                System.out.println(i+"="+ row.getKey());
                i++;
            }
    
        }
    

    A workaround solution was found:

    In ADF 12 c, it can be solved by changing Updatable "Always" in the details tab of each attributes to read-only view object without entity object.

  • How to set current row in the table after use the button tab on inputText

    Hi all
    My first post.., I am beginner in ADF and I'll try to explain my problem.

    For now we use ADF 11 g (11.1.1.4), in a jsff page I have a table with a column of inputText.
    On the the inputText valueChangeListener, I invoke a method in a bean viewScope that call an EJB method, make some services to the EJB on the modified line. After that, I update the VO and the table (because other values in the row have been changed) and reset the focus on the inputText even modified by the user with javaScript, because the focus was lost after updating.
    So far, everything works fine.

    When I use the arrow keys to change the selected line in the table, this is excellent work (focus is always in the inputText next or previous), but if the user tries the key tab allows you to change the current line, the inputText on the line that has the focus, but the current row in the table is not changed (I think that is normal).

    My question: How can I change the current line after the tab key in this case?

    I don't know if it is really clear, not easy to explain, do not hesitate to ask for more details.
    Thanks in advance.

    Hello

    My question: How can I change the current line after the tab key in this case?

    Use a client event to listen to the keyboard entry and intercept the tab. Use af:serverListener to call the server to set the rowKey on the table and deliver a PPR for the table to repaint

    See example 11 on http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index-101235.html#CodeCornerSamples

    to learn more on how to use the client listener and the receiving server

    Frank

  • Need help with the numbering of rows in the table

    I have Setup dynamic table to add rows through the instance Manager.

    Each row in the table has a button to delete this specific instance.

    The problem I have is that, if a row is deleted in the middle of the table, the lines don't re-COMP.

    For example, if the table contains rows numbered 1, 2, 3 & 4, and line 2 is deleted, I want

    the lines to be re-numbered 1, 2, & 3. Instead, what I get is lines 1, 3 and 4.

    The script I use to number the lines is:

    this.rawValue=this.parent.index+1

    I read in other posts that this script used in a table automatically updates the

    number of lines if a line is removed.

    For some reason, it does not work for me.

    All of the suggestions.

    Thank you!

    I created a sample for you... Take a look and let me know what you want.

    Paul

  • I have a table of the adf, I added a column that contains a button that I created, when I click it must remove this row in the table, but it is not, please help

    I have a table of the adf, I added a column that contains a button that I created, when I click it must remove this row in the table, but it is not, please help

    I don't understand. You use vo and eo for you to use business components.

    Again, this kind of code call in trouble.

    You must post the changes to make them visible to the eo find vo. You must then run the query for the changes in the business layer strips then you must update the iterator he table is based on.

    In your code I see that happen, hooch maybe because it is more often than not formatted and undocumented.

    My advice is to do a small test case that you can manage with easy sql. Once you get it to run transfer you the results to the actual application.

    Timo

  • Select the row in the table to change in a form

    Hi all

    I use Jdeveloper 12.1.3.0.0 on windows internet explore 10.

    I have the following form and the read-only table. the form and the table that are both on the same object from view.

    click_edit.png

    When the user clicks a row in the table, I want to choose this line in the form above for editing purpose.

    How would I do that? the first column of the table is a primary key.

    I followed shayjdev vedio http://www.youtube.com/watch?v=e0IcnXLJUgU

    but the problem is that when I click the button CreateInsert (5th button left in my case), never clear the form for the opening of new record, instead, he put the table in input mode.

    kindly help me with this.

    Thank you.

    To create a new line, you drag the operation createInsert of the data control on the create new"" button. This should create the new row.  If you like the new line being the last of them using the link from dvohra21 to https://blogs.oracle.com/jdevotnharvest/entry/how_to_add_new_adf

    In this case, you must change the listener to the button action to point to the generation of listener action code of Frank.

    Timo

  • LOV in richeTableau resets the value after the deletion of rows from the table

    Hello. I'm on 11g R2

    I have a table with columns in the box and a button in the toolbar that removes the lines checked

    I have build it based on the following article in her string code

    http://www.Oracle.com/technetwork/developer-tools/ADF/learnmore/index-101235.html


    When I run the "delete" button I execute the following code (taken as is article)


    public void deleteSelectedRows() {}

    create a second line, the value do not affect all lines

    used in ADF

    Set of rows duplicateRowSet = this.createRowSet ("duplicateRowSet");

    first row to avoid "the attempt to access the value of lines."

    exception line was dead.

    duplicateRowSet.first ();

    retrieve the current row of the table for after

    re-running the VO

    Line currentRow = this.getCurrentRow ();

    Boolean currentRowDeleted = false;

    get all rows that have the transoent attribute

    "MarkForDelete' set to true

    Row [] rowsToDelete =

    duplicateRowSet.getFilteredRows ("MarkedForDelete", true);

    If (rowsToDelete.length > 0) {}

    run only throizgh this code, if there is something to

    delete

    for (line rw: rowsToDelete) {}

    If the row is marked as the current in VO, ts value

    Boolean flag

    If (rw.getKey () .equals (currentRow.getKey ())) {}

    currentRowDeleted = true;

    }

    remove the line - do not yet commit

    RW. Remove();

    }

    rerun VO

    this.executeQuery ();

    reset the current line if it has not been removed

    If (! currentRowDeleted) {}

    this.setCurrentRow (currentRow);

    }

    duplicateRowSet.closeRowSet ();

    }

    }

    "MarkedForDelete" is a transient attribute used to mark the line delete

    The lines are removed very well.

    The problem is with lines that I do not delete.

    For example I LOV column. I chose the value LOV in a few lines, and after that choose to delete several lines (not the same lines where I modified the LOV) but some other lines.

    After I click "delete", the lines that I marked to remove deleted indeed, but the value of the LOV in other rows (I have not scored for delete) are disabled.

    How to preserve value LOV so it will remain also after I deleted some lines?

    P.S. I've tried autosubmit = "true" - it did not help

    It is expected because I see that you rerun the query.

    Once you re - run, it retrieves from the database again. Thus, your values are lost because they are not posted.

    I don't think that run query is necessary, try to have a programmatic part trigger on the table after you remove all of the lines.

    Thank you

    Alisson.

  • Disable the call to the listener of selection for certain cells of a row in the table.

    Hi all


    I have a table with 5 columns. I applied a listener of custom for this table in the bean selection. Now, what is my requirement, an action should happen in some specific cells in this table not all cells. So, how can I get that cell was clicked while the user selects a row in the table? If I can get my problem is apparently solved.

    Help, please.

    You could do this by putting a client listener on the element inside the columns instead of a listener of the selection on the table. You will then get a server event that will tell you which column was clicked.

    http://www.Oracle.com/technetwork/developer-tools/ADF/learnmore/11-client-listener-169135.PDF

  • How to adapt the rows in the table spans several pages in proportion to an image?

    Hi all

    I have a fairly large excel file (more than 2000 lines) imported, and the resulting table spans more than 150 pages.

    The problem is that the lines don't always fill the height of the text block (height of 9.5 ") on every page.

    I don't like that the lines are of different sizes. I want just the lower edges of tables on each page to be in the same place.

    By dragging the line down with the SHIFT key does not work if the table spans several pages/text blocks.

    Is it possible to force the selected lines (or stored in a block of text) proportionally fill their block of text?

    It is really not any function automatic adjustment that apply at the height of the row in the table directly, then I suspect that you're not going to find a way to do this is automatic.

    If it was my document, I would consider (something like) do this:

    Find the highest line in the table. (Or, perhaps that if there is some exceptionally high lines; unobtrusively manipulate them and use the 2nd or 3rd highest line as a reference.) Calculate the number of lines (max number of) of this size will fit in each text block. Divide the height of the block of text by this number to get a line height that adapts the same number of lines in each image. Then, select the entire table and all rows from this height. Follow up with the typographic settings that help uniform line height look resolutely.

Maybe you are looking for