Delete rows from the table

Hello

10G

A custom table is to have 5000 documents, I need to have everything 100 records in the table and delete the rest of them.
could you suggest...

Thank you
Tim
delete table_name where rowid not in (select rowid from table_name where rownum <101);

Tags: Database

Similar Questions

  • How to capture what oracle object delete rows in the table?

    Hi all

    I have a table in which I am storing data deleted from the main table. I have a delete on the main table statements in the various packages, now I want to capture what sql statement what package is remove rows from the table. I created the trigger to insert data into the backup table. I'm using oracle 11g.

    Please help me...

    Thanks and greetings

    Vidyasagar.B

    You can use DBMS_UTILITY.FORMAT_CALL_STACK.
    
    SQL> create table t
      2  (
      3    no integer
      4  );
    
    Table created.
    
    SQL> create table t_log
      2  (
      3    str clob
      4  );
    
    Table created.
    
    SQL> create or replace trigger t_trig before insert on t
      2  begin
      3     insert into t_log(str) values (dbms_utility.format_call_stack);
      4  end;
      5  /
    
    Trigger created.
    
    SQL> create or replace procedure p
      2  as
      3  begin
      4    insert into t (no) values (1);
      5  end;
      6  /
    
    Procedure created.
    
    SQL> create or replace package pkg
      2  as
      3     procedure run;
      4  end;
      5  /
    
    Package created.
    
    SQL> create or replace package body pkg
      2  as
      3     procedure run
      4     is
      5     begin
      6       p;
      7     end;
      8  end;
      9  /
    
    Package body created.
    
    SQL> exec pkg.run
    
    PL/SQL procedure successfully completed.
    
    SQL> select * from t_log;
    
    STR
    --------------------------------------------------------------------------------
    ----- PL/SQL Call Stack -----
      object      line  object
      handle    number  name
    3abbbc6d8         1  anonymous block
    3ad03bf88         2  KARTHICK.T_TRIG
    3a51a18a8         4  procedure KARTHICK.P
    3ac4f1508         6  package body KARTHICK.PKG
    3ac91c250         1  anonymous block
    
  • 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.

  • Delete rows from a table in expansion

    Hello

    I have a table in expansion that allows users to click on a button '+' of the line to add as many lines.  The table contains mandatory fields.  There is an option button in another part of the form if the value 'No', the whole of the section containing the table is hidden.  I need to remove extra lines, that the user may have added to the table before selecting that 'No' answers, leaving only the first three ranks (title 2 rows and the first line of data).  If the table had six names (total 8 rows) so I want to remove 7 rows. I have remove the value from the first row separately.  I tried something like that, but I couldn't make it work; I'm not a very experienced scripter.  Thank you.


    for (var oLen = Table1.nodes.length; oLen > 3; t ++) {}

    Table1.parent.parent.instanceManager.removeInstance (oLen);

    }



    Hello

    There is a mistake in your statement.

    You start the last instance of the line and you want to remove all the lines from the last to the 3rd row...

    You must change your value when you remove 1 row, but instead to change the value of oLen you change the variable "t".

    Also if you are a beginner as a last resort, and down to the third row, you can decrease the index you use rather than increase it.

    So you're code need some minor changes, and it should look like this:

    for (var Table1.parent.parent.instanceManager.count - 1; oLen = oLen > 3; oLen-) {}

    Table1.parent.parent.instanceManager.removeInstance (oLen);

    }

    I hope this helps!

  • Fonts of different weights for some rows from the table in a tableView

    Hi all

    I need to add a summary in a TableView row to calculate the sum of all values above this line. For each line, I have an object called KostenDTO.

    class SummCurrencyTableCellFactory implements Callback, TableCell> {

         private NumberFormat numFormat = null;

         public SummCurrencyTableCellFactory(NumberFormat numFormat) {

              this.numFormat = numFormat;

         }

         @Override public TableCell call(TableColumn param) {

              TableCell cell = new TableCell() {

                   @Override public void updateItem(final Float item, boolean empty) {

                   if (item != null) {

                        setText(numFormat.format(item));

                        setStyle("  -fx-alignment: CENTER-RIGHT;");

                        if (item < 0.0) {

                             this.setTextFill(Color.RED);

                        } else {

                             this.setTextFill(Color.BLACK);

                        }

                  } else {

                        setText("");

                  }

              }

         };

         return cell;

        }

      };


    How can I change the font to bold amount-line?

    Thanks and regards Tim

    You can do

      String fontWeight ;
      if (getIndex() == getTableColumn().getTableView().getItems().size()-1) {
      fontWeight = "-fx-font-weight: bold;";
      } else {
      fontWeight = "-fx-font-weight: normal;";
      }
      setStyle("-fx-alignment: CENTER-RIGHT;\n" + fontWeight);
    

    in the updateItem method (...), assuming that the line of the somme is the last line of the table.

  • filtering rows from the tables

    We have about a 10 tables where specific information must be filtered from users with access select backend based on about 5 unique id (in the same column).

    This must be done for users with back-end access only.

    I have some experience with MEV for use in column-masking. I thought this may be helpful here as well but - my concerns are around the possible performance implications.

    Filtering is not necessary for the job but real application process - they are still going to be run the vpd function to determine if they want to add the additional predicate whenever they perform. I don't know if it will be a performance problem or - if there is a better way to do it.

    Has anyone experience with MEV in that capacity or - have other suggestions around lines matching the (transparent) tables for users who have access via the backend of the application?

    wtlshiers wrote:
    I was hoping to create a political function that is not "query" to the determining factor around adding the predicate each time. That's where I think that the context of enforcement would be used.

    What do you mean by "application" in this context? The political function must determine the predicate to apply. Of course, this predicate could code be hardcoded in the political function, i.e.

    CREATE OR REPLACE FUNCTION my_policy_function(p_owner IN VARCHAR2, p_object_name IN VARCHAR2)
      RETURN VARCHAR2 AS
    BEGIN
      IF( user = 'SHARED_APPLICATION_ID' )
      THEN
        RETURN '1=1';
      ELSIF( user = 'BOB_FROM_ACCOUNTING' )
      THEN
        RETURN 'group_id NOT IN (1,2,3)'; -- Bob can see everything other than group_id's 1, 2, or 3
      ELSIF( user = 'SHARON_FROM_FACILITIES' )
      THEN
        RETURN 'group_id = 4'; -- Sharon can only see group_id 4
      END IF;
    
      -- If we don't know about you, deny access
      RETURN '1=0';
    END my_policy_function;
    

    Normally, however, you want to have some sort of mapping table of users to the groups to which they have access in order to simplify the predicate, i.e.

    CREATE OR REPLACE FUNCTION my_policy_function(p_owner IN VARCHAR2, p_object_name IN VARCHAR2)
      RETURN VARCHAR2 AS
    BEGIN
      RETURN 'group_id IN (SELECT u2g.group_id FROM user_to_group_mapping u2g WHERE u2g.username = USER)';
    END my_policy_function;
    

    You can use something in the context of the session value rather than the call to the USER run when you configure the predicate, but I'm not sure it's necessary complexity account required to your needs.

    In this case - when a user connects to the database - if they are a user who shouldn't be able to see the specific tables group id - I would fix the system as a result of this user context.

    Then - in the political function - I would use the sys context function to determine whether the predicate should be added or not (include/exclude as appropriate).

    If you want to use a user-defined context, you could, of course, do something like this to prevent users to access sensitive groups if their IS_ALLOWED attribute is not set to "Y". I have

    CREATE OR REPLACE FUNCTION my_policy_function(p_owner IN VARCHAR2, p_object_name IN VARCHAR2)
      RETURN VARCHAR2 AS
    BEGIN
      IF( sys_context( 'MY_CONTEXT', 'IS_ALLOWED' ) = 'Y' )
      THEN
        RETURN '1=1';
      ELSE
        RETURN 'group_id NOT IN (1,2,3,4,5)'; -- Groups 1-5 are sensitive
      END IF;
    END my_policy_function;
    

    l is simply not obvious to me that it is beneficial in your case where everything is based on the Oracle user name. You can certainly create a context and fill in this context in a logon trigger, but now you have created a context and a logon trigger, and the solution is not as flexible as the table-based approach. In addition you have the coded group_id hard which makes it less likely that someone is going to notice the changes required when group_id are added in the future.

    Justin

  • Add / remove rows from the Table

    Hello

    I'm really new to LiveCycle ES 8.2 (= non-existent knowledge of JavaScript) and has difficulties to create a table that can add / remove lines.

    I found a model that has the feature I need, but am unable to reproduce the table. (Ref. "Fax Cover Sheet_SW.pdf' http://forums.adobe.com/message/2561553#2561553)

    Even when I create a new blank form, and then copy / paste the table (subforms: 'detailHeader' + "detal") in the new, blank forms, the table stops working. The buttons are more clickable in the LiveCycle 'Preview PDF'

    In the new, blank forms, the 'Paging' and 'Binding' tabs have some or all of their features grayed out.

    I tried the following:

    1. Save the form as an "Adobe Dynamic form XML (pdf)"
    2. Make sure all of the 'content' subform fields were set to "Position" instead of "Flowed".

    What am I missing, like all JavaScript copied on, but for some reason any does not work.

    4 things you need to correct your form...

    (1) Page1 subform needs tobe Flowed the value.

    (2) then the link to the Subform1 tab will be active. You must check the box "subform to repeat for each item of data.

    (3) in the Add button to Subform1 you missed 'instanceManager' in the code...

    Subform1.instanceManager.addInstance (1);

    (4) in the same way in the button Delete

    Subform1. instanceManager. removeInstance (this.parent.index);

    Thank you

    Srini

  • delete rows from two tables

    Hello

    My main table is:

    create table CvProperties(
    cv_id number(14) primary key,
    user_id number(14) constraint Cv_fk1 references users(user_id),
    cat_id number(14) constraint Cv_fk2 references CvCategories(cat_id),
    employerOrAgent_id number(14) constraint Cv_fk3 references employerOrAgent(employerOrAgent_id),
    staff_id number(14) constraint Cv_fk4 references staff(staff_id),
    cvDate timestamp(0) default sysdate,
    cvName varchar2(230),
    status number(3),
    prev_cvId number(14),
    isEdited number(2),
    cvSource number(2) /**website, employer, agent, staff**/
    );
    

    Detail table is:

    create table cvDetails(
    cd_id number(14) primary key,
    cv_id number(14) constraint education_fk references CvProperties(cv_id),
    nationality varchar2(230),
    objectives varchar2(3900),
    name varchar2(230),
    fatherName varchar2(230),
    motherName varchar2(230),
    dob varchar2(230).
    gender varchar2(230),
    mStatus varchar2(230),
    passportNo varchar2(110),
    email varchar2(230),
    phone varchar2(45),
    mobile varchar2(25),
    address varchar2(2500),
    state varchar2(230),
    zipCode varchar2(230),
    city varchar2(230),
    education clob,
    experience clob,
    skills clob,
    languages varchar2(1400),
    hobbies varchar2(3200),
    achievements varchar2(3900),
    references varchar2(3900));
    

    I'm trying to delete the cvs that have no email + mobile + phone:

    select COUNT(*) from cvDetails where email is NULL AND mobile IS NULL AND phone IS NULL;
    

    This query shows 4814 CVs.

    How can I run that check if the e-mail, phone mobile, is null then remove cv of the two tables in query?

    Please notify

    https://www.Google.com/webhp?hl=en&tab=WW#hl=en&q=Oracle+on+delete+cascade

  • Delete the row in the Table by using the report link column

    Hello

    I a report advocating the rows in a table - I would like to for users to be able to delete rows in the table by clicking on the link in the column "ID". I thought about trying to call a process by using a javascript URL (as mentioned in this thread - Re: how to call PL/SQL process when you press link column ) but I don't know how to write the process so that he knows what 'ID' to remove from the table.

    Any ideas would be greatly appreciated.

    Forrest

    Forrest:

    Follow these steps

    Create an item hidden on the page P_ID named who said
    In the column link definition set the goal URL as the URL as
    JavaScript:doDelete(#ID#);
    Add this JS ito header HTML of the page

     
    

    Create a process page ' on submit ' with the code to delete the record from the table. Subordinate this process by using a "pl/sql expression" type of condtion. Will be the expression of pl/sql

    :request='DELETE';
    

    Treat code

    delete from  where pk_column=:p_id; //adjust as needed 

    Add a branch that branches off to the page

    CITY

  • 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

  • Display the option button if the number of rows in the table is equal to 1

    I'm having issues there buy maybe a simple script out there.

    I have a table which can have up to four lines. If the table contains only one row, an option button can be clicked to change the format/entry of cells in this row. I have to hide this box of a user option, if they added more of a line to the table and make it available again if they reduce the number of lines to one.

    I have everything else works well (radio buttons change line format, add/delete rows in the table using buttons, number of rows in the first column)

    Anyone have any ideas?

    See you soon

    Bobby

    You can place it in the code that adds more lines when running... If you have questions send the fomr to [email protected] so I can check it out...

    Thank you

    Srini

  • 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.

  • Delete multiple rows in the table.

    How to remove several rows in the table at the same time?

    I have a table with 10 rows.

    I have a loop for delete lines 1, 3 and 6.

    It deletes the row 1 and 3 of the Index out of Bounds exception.

    I know why this is happening.

    I'm looking for a function or something to delete several lines at once?

    Thank you

    It must be a logic error.

    For each row, you delete, you should reduce the number of indexes.

    For example

    If you want to delete lines 1, 3 and 6 of a table that contains 6 rows

    Remove row1 as Table.Row [0].instanceManager.removeInstance ();    [now how many lines will become 5]

    Remove row3 as Table.Row [1].instanceManager.removeInstance ();     [Note that index is 1 because you have already deleted a record, and the index starts at 0.

    Remove row6 as Table.Row [3].instanceManager.removeinstance ();      [already two deleted record, so 6-2-1 = 3 is your index to remove]

    You understand the logic?

    Nith

  • Hide columns in Table B, based on values LOV in another row of the table:

    Hello

    Jdev 12.2.1.0

    I have two tables A and B and I hide columns b based on the value of row of table A LOV. For example, I have a line in A table that has a column with the x, y, z values lov. Now, if I select the row in the table has and change the LOV to x, I had to hide some of the columns in the table (B) is there a way to get this feature? Any help would be appreciated.

    Thank you

    Assume:

    1 table a call "DepartmentId" column this column has LOV.

    B 2-table a column "ColumnInB" this column will be visible depending on the value of "DepartmentId".

    Try to do the following:

    1 - from data controls, drag "DepartmentId" attribute and drop it on the page as inputText then together make this inputText to false (you can remove it, but don't forget the corresponding binding in pageDef. not deleted).

    2. copy the value of the inputText which will be as "#{bindings." DepartmentId.inputValue}"and go to the"ColumnInB"column and visible property beyond the copied value.

    3 - the ColumnInB visible will be the condition as:

    4-set DepartmentId autoSubmit = 'true '.

    5-set table partialTriggers table B has id and id of DepartmentId LOV

  • 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

Maybe you are looking for