Massive deleting rows not performant

The goal of our DataFlow is to delete a lot of rows from a table on a criteria (primary key for example)
It takes too much time.
When we look at the queries on the oracle database it seems that DI works line by line.
It is possible to improve the method without using a sql transform?
Thanks

SQL Transform no, but sql() function.
But in your case you want to have a dataflow that deletes the rows, its optimizations are described here:
https://wiki.sdn.sap.com:443/wiki/pages/viewpage.action?pageId=49414394

Similar Messages

  • Delete Rows from T1 which are Not in T2

    Hi
    I've 2 Tables like below
    T1
    N1
    N2
    2
    11
    2
    22
    3
    33
    8
    44
    8
    88
    T2
    N1
    N2
    2
    22
    8
    88
    If I Run Delete query, I must delete Rows from T1 which are Not in T2
    For example, I must delete Rows 1,3,4 from T1
    So how to write that delete query? Please advice

    Delete from T1
    Where not Exists (select * from T2 Where t1.N1=t2.N1 and t1.N2=t2.N2)
    --or
    Delete t
    From t1 t
    left JOIN t2 m
    ON m.N1=t.N1 and m.N2=t.N2
    WHERE m.N1 is null and m.N2 is null
    --Or
    ;With mycte as
    select N1,N2 from T1
    Except
    select N1,N2 from T2
    Delete t
    From t1 t
    INNER JOIN mycte m
    ON m.N1=t.N1 and m.N2=t.N2

  • Table compare deleting rows which does not exist in target table

    Hi Gurus,
    I am struggling with an issue in Data Services.
    I have a job which uses Table Compare, then History Preserving and then a Key Generation transforms.
    There is every possibility that data would get deleted from the source table.
    Now, I want to delete them from the target table also.
    I tried Detect deleted rows but it is not working.
    Could some one please help me on this issue.
    Thanks,
    Raviteja.

    Doesn't history preserving really only operate on "Update" rows.  Wouldn't it only process the deletes if you turned the "Preserve Delete row(s) as update row(s)" on?
    I would think if you turned on Detect Delete rows in the Table compare and did not turn this on in the history preserving it would retain those rows as delete rows and effectively remove them from the target.
    Preserve delete row(s) as update row(s)
    Converts DELETE rows to UPDATE rows in the target warehouse and, if you previously set effective date values (Valid from and Valid to), sets the Valid To value to the execution date. Use this option to maintain slowly changing dimensions by feeding a complete data set first through the Table Comparison transform with its Detect deleted row(s) from comparison table
    option selected.

  • Global Temporary Table not deleting Rows

    why is my Global temp table not deleting the rows after commit see below,
    CREATE GLOBAL TEMPORARY T_CHG
    TBE VARCHAR2(7),
    ABC VARCHAR2(8),
    EFDA VARCHAR2(6),
    ABD VARCHAR2(9),
    A_ID VARCHAR2(128),
    C_DATE,
    ON COMMIT DELETE ROWS;

    Quite a few syntax issues with your create statement. It would have helped if you had posted a SQL*Plus session showing your results. Here is mine which works just fine:
    sql>create global temporary table t_chg
      2  (
      3  tbe varchar2(7),
      4  abc varchar2(8),
      5  efda varchar2(6),
      6  abd varchar2(9),
      7  a_id varchar2(128),
      8  c_date date
      9  )
    10  on commit delete rows;
    Table created.
    sql>insert into t_chg values ('1', '2', '3', '4', '5', sysdate);
    1 row created.
    sql>select count(*) from t_chg;
    COUNT(*)
            1
    1 row selected.
    sql>commit;
    Commit complete.
    sql>select count(*) from t_chg;
    COUNT(*)
            0
    1 row selected.

  • ORA-01456 : may not perform insert/delete/update operation

    When I use following stored procedure with crystal reports, following error occurs.
    ORA-01456 : may not perform insert/delete/update operation inside a READ ONLY transaction
    Kindly help me on this, please.
    My stored procedure is as under:-
    create or replace
    PROCEDURE PROC_FIFO
    (CV IN OUT TB_DATA.CV_TYPE,FDATE1 DATE, FDATE2 DATE,
    MSHOLD_CODE IN NUMBER,SHARE_ACCNO IN VARCHAR)
    IS
    --DECLARE VARIABLES
    V_QTY NUMBER(10):=0;
    V_RATE NUMBER(10,2):=0;
    V_AMOUNT NUMBER(12,2):=0;
    V_DATE DATE:=NULL;
    --DECLARE CURSORS
    CURSOR P1 IS
    SELECT *
    FROM FIFO
    WHERE SHARE_TYPE IN ('P','B','R')
    ORDER BY VOUCHER_DATE,
    CASE WHEN SHARE_TYPE='P' THEN 1
    ELSE
    CASE WHEN SHARE_TYPE='R' THEN 2
    ELSE
    CASE WHEN SHARE_TYPE='B' THEN 3
    END
    END
    END,
    TRANS_NO;
    RECP P1%ROWTYPE;
    CURSOR S1 IS
    SELECT * FROM FIFO
    WHERE SHARE_TYPE='S'
    AND TRANS_COST IS NULL
    ORDER BY VOUCHER_DATE,TRANS_NO;
    RECS S1%ROWTYPE;
    --BEGIN QUERIES
    BEGIN
    DELETE FROM FIFO;
    --OPENING BALANCES
    INSERT INTO FIFO
    VOUCHER_NO,VOUCHER_TYPE,VOUCHER_DATE,TRANS_QTY,TRANS_AMT,TRANS_RATE,
    SHOLD_CODE,SHARE_TYPE,ACC_NO,SHARE_CODE,TRANS_NO)
    SELECT TO_CHAR(FDATE1,'YYYYMM')||'001' VOUCHER_NO,'OP' VOUCHER_TYPE,
    FDATE1-1 VOUCHER_DATE,
    SUM(
    CASE WHEN
    --((SHARE_TYPE ='S' AND DTAG='Y')
    SHARE_TYPE IN ('P','B','R','S') THEN
    TRANS_QTY
    ELSE
    0
    END
    ) TRANS_QTY,
    SUM(TRANS_AMT),
    NVL(CASE WHEN SUM(TRANS_AMT)<>0
    AND
    SUM
    CASE WHEN SHARE_TYPE IN ('P','B','R','S') THEN
    TRANS_QTY
    ELSE
    0
    END
    )<>0 THEN
    SUM(TRANS_AMT)/
    SUM
    CASE WHEN SHARE_TYPE IN ('P','B','R','S') THEN
    TRANS_QTY
    ELSE
    0
    END
    ) END,0) TRANS_RATE,
    MSHOLD_CODE SHOLD_CODE,'P' SHARE_TYPE,SHARE_ACCNO ACC_NO,
    SHARE_CODE,0 TRANS_NO
    FROM TRANS
    WHERE ACC_NO=SHARE_ACCNO
    AND SHOLD_CODE= MSHOLD_CODE
    AND VOUCHER_DATE<FDATE1
    --AND
    --(SHARE_TYPE='S' AND DTAG='Y')
    --OR SHARE_TYPE IN ('P','R','B'))
    group by TO_CHAR(FDATE1,'YYYYMM')||'001', MSHOLD_CODE,SHARE_ACCNO, SHARE_CODE;
    COMMIT;
    --TRANSACTIONS BETWEEND DATES
    INSERT INTO FIFO
    TRANS_NO,VOUCHER_NO,VOUCHER_TYPE,
    VOUCHER_DATE,TRANS_QTY,
    TRANS_RATE,TRANS_AMT,SHOLD_CODE,SHARE_CODE,ACC_NO,
    DTAG,TRANS_COST,SHARE_TYPE
    SELECT TRANS_NO,VOUCHER_NO,VOUCHER_TYPE,
    VOUCHER_DATE,TRANS_QTY,
    CASE WHEN SHARE_TYPE='S' THEN
    NVL(TRANS_RATE-COMM_PER_SHARE,0)
    ELSE
    NVL(TRANS_RATE+COMM_PER_SHARE,0)
    END
    ,TRANS_AMT,SHOLD_CODE,SHARE_CODE,ACC_NO,
    DTAG,NULL TRANS_COST,SHARE_TYPE
    FROM TRANS
    WHERE ACC_NO=SHARE_ACCNO
    AND SHOLD_CODE= MSHOLD_CODE
    AND VOUCHER_DATE BETWEEN FDATE1 AND FDATE2
    AND
    ((SHARE_TYPE='S' AND DTAG='Y')
    OR SHARE_TYPE IN ('P','R','B'));
    COMMIT;
    --PURCHASE CURSOR
    IF P1%ISOPEN THEN
    CLOSE P1;
    END IF;
    OPEN P1;
    LOOP
    FETCH P1 INTO RECP;
    V_QTY:=RECP.TRANS_QTY;
    V_RATE:=RECP.TRANS_RATE;
    V_DATE:=RECP.VOUCHER_DATE;
    dbms_output.put_line('V_RATE OPENING:'||V_RATE);
    dbms_output.put_line('OP.QTY2:'||V_QTY);
    EXIT WHEN P1%NOTFOUND;
    --SALES CURSOR
    IF S1%ISOPEN THEN
    CLOSE S1;
    END IF;
    OPEN S1;
    LOOP
    FETCH S1 INTO RECS;
    EXIT WHEN S1%NOTFOUND;
    dbms_output.put_line('OP.QTY:'||V_QTY);
    dbms_output.put_line('SOLD:'||RECS.TRANS_QTY);
    dbms_output.put_line('TRANS_NO:'||RECS.TRANS_NO);
    dbms_output.put_line('TRANS_NO:'||RECS.TRANS_NO);
    IF ABS(RECS.TRANS_QTY)<=V_QTY
    AND V_QTY<>0
    AND RECS.TRANS_COST IS NULL THEN
    --IF RECS.TRANS_COST IS NULL THEN
    --dbms_output.put_line('SOLD:'||RECS.TRANS_QTY);
    --dbms_output.put_line('BAL1:'||V_QTY);
    UPDATE FIFO
    SET TRANS_COST=V_RATE,
    PUR_DATE=V_DATE
    WHERE TRANS_NO=RECS.TRANS_NO
    AND TRANS_COST IS NULL;
    COMMIT;
    dbms_output.put_line('UPDATE TRANS_NO:'||RECS.TRANS_NO);
    dbms_output.put_line('OP.QTY:'||V_QTY);
    dbms_output.put_line('SOLD:'||RECS.TRANS_QTY);
    dbms_output.put_line('TRANS_NO:'||RECS.TRANS_NO);
    dbms_output.put_line('BAL2:'||TO_CHAR(RECS.TRANS_QTY+V_QTY));
    END IF;
    IF ABS(RECS.TRANS_QTY)>ABS(V_QTY)
    AND V_QTY<>0 AND RECS.TRANS_COST IS NULL THEN
    UPDATE FIFO
    SET
    TRANS_QTY=-V_QTY,
    TRANS_COST=V_RATE,
    TRANS_AMT=ROUND(V_QTY*V_RATE,2),
    PUR_DATE=V_DATE
    WHERE TRANS_NO=RECS.TRANS_NO;
    --AND TRANS_COST IS NULL;
    COMMIT;
    dbms_output.put_line('UPDATING 100000:'||TO_CHAR(V_QTY));
    dbms_output.put_line('UPDATING 100000 TRANS_NO:'||TO_CHAR(RECS.TRANS_NO));
    INSERT INTO FIFO
    TRANS_NO,VOUCHER_NO,VOUCHER_TYPE,
    VOUCHER_DATE,TRANS_QTY,
    TRANS_RATE,TRANS_AMT,SHOLD_CODE,SHARE_CODE,ACC_NO,
    DTAG,TRANS_COST,SHARE_TYPE,PUR_DATE
    VALUES
    MCL.NEXTVAL,RECS.VOUCHER_NO,RECS.VOUCHER_TYPE,
    RECS.VOUCHER_DATE,RECS.TRANS_QTY+V_QTY,
    RECS.TRANS_RATE,(RECS.TRANS_QTY+V_QTY)*RECS.TRANS_RATE,RECS.SHOLD_CODE,
    RECS.SHARE_CODE,RECS.ACC_NO,
    RECS.DTAG,NULL,'S',V_DATE
    dbms_output.put_line('INSERTED RECS.QTY:'||TO_CHAR(RECS.TRANS_QTY));
    dbms_output.put_line('INSERTED QTY:'||TO_CHAR(RECS.TRANS_QTY+V_QTY));
    dbms_output.put_line('INSERTED V_QTY:'||TO_CHAR(V_QTY));
    dbms_output.put_line('INSERTED RATE:'||TO_CHAR(V_RATE));
    COMMIT;
    V_QTY:=0;
    V_RATE:=0;
    EXIT;
    END IF;
    IF V_QTY>0 THEN
    V_QTY:=V_QTY+RECS.TRANS_QTY;
    ELSE
    V_QTY:=0;
    V_RATE:=0;
    EXIT;
    END IF;
    --dbms_output.put_line('BAL3:'||V_QTY);
    END LOOP;
    V_QTY:=0;
    V_RATE:=0;
    END LOOP;
    CLOSE S1;
    CLOSE P1;
    OPEN CV FOR
    SELECT TRANS_NO,VOUCHER_NO,VOUCHER_TYPE,
    VOUCHER_DATE,TRANS_QTY,
    TRANS_RATE,TRANS_AMT,SHOLD_CODE,B.SHARE_CODE,B.ACC_NO,
    DTAG,TRANS_COST,SHARE_TYPE, B.SHARE_NAME,A.PUR_DATE
    FROM FIFO A, SHARES B
    WHERE A.SHARE_CODE=B.SHARE_CODE
    --AND A.SHARE_TYPE IS NOT NULL
    ORDER BY VOUCHER_DATE,SHARE_TYPE,TRANS_NO;
    END PROC_FIFO;
    Thanks and Regards,
    Luqman

    Copy from TODOEXPERTOS.COM
    Problem Description
    When running a RAM build you get the following error as seen in the RAM build
    log file:
    14:52:50 2> Updating warehouse tables with build information...
    Process Terminated In Error:
    [Oracle][ODBC][Ora]ORA-01456: may not perform insert/delete/update operation inside a READ ONLY transaction
    (SIGENG02) ([Oracle][ODBC][Ora]ORA-01456: may not perform insert/delete/update operation inside a READ ONLY transaction
    ) Please contact the administrator of your Oracle Express Server application.
    Solution Description
    Here are the following suggestions to try out:
    1. You may want to use oci instead of odbc for your RAM build, provided you
    are running an Oracle database. This is setup through the RAA (relational access
    administrator) maintenance procedure.
    Also make sure your tnsnames.ora file is setup correctly in either net80/admin
    or network/admin directory, to point to the correct instance of Oracle.
    2. Commit or rollback the current transaction, then retry running your
    RAM build. Seems like one or more of your lookup or fact tables have a
    read-only lock on them. This occurs if you modify or add some records to your
    lookup or fact tables but forget to issue a commit or rollback. You need to do
    this through SQL+.
    3. You may need to check what permissions has been given to the relational user.
    The error could be a permissions issue.
    You must give 'connect' permission or roll to the RAM/relational user. You may
    also try giving 'dba' and 'resource' priviliges/roll to this user as a test. Inorder to
    keep it simple, make sure all your lookup, fact and wh_ tables are created on
    a single new tablespace. Create a new user with the above privileges as the
    owner of the tablespace, as well as the owner of the lookup, fact and wh_
    tables, inorder to see if this is a permissions issue.
    In this particular case, the problem was resolved by using oci instead of odbc,
    as explained in suggestion# 1.

  • Delete row in a table (not ALV)

    i have a table on my web-dynpro-view. I defined a delete-Button and a method with some coding.
    If the User marks a row and press the button, the row is deleted. Here's the code:
    METHOD onactioneintrag_loeschen .
      DATA:  wd_node TYPE REF TO if_wd_context_node,
             wa_temp  TYPE REF TO if_wd_context_element,
             lt_temp  TYPE wdr_context_element_set.
      wd_node = wd_context->get_child_node( name = 'LV' ).
      CALL METHOD wd_node->get_selected_elements
        RECEIVING
          set = lt_temp.
      LOOP AT lt_temp INTO wa_temp.
        wd_node->remove_element( EXPORTING element = wa_temp ).
      ENDLOOP.
    ENDMETHOD.
    My problem: in the context-change-log i can't identify the deleted rows. It's impossible to make a difference between a change of selection and a delete.

    Hi David,
    You can declare one attribute in the view of type ur row.
    and store the deleted row in this attribute in ur delete method.
    DATA: wd_node TYPE REF TO if_wd_context_node,
    wa_temp TYPE REF TO if_wd_context_element,
    lt_temp TYPE wdr_context_element_set.
    wd_node = wd_context->get_child_node( name = 'LV' ).
    CALL METHOD wd_node->get_selected_elements
    RECEIVING
    set = lt_temp.
    LOOP AT lt_temp INTO wa_temp.
    <Attribute_name> = wa_temp .
    wd_node->remove_element( EXPORTING element = wa_temp ).
    ENDLOOP.
    ENDMETHOD.
    Hope this will help you.
    Thanks & Regards,
    Arvind

  • Unable to delete rows from Target.

    Hello everyone,
    I am unable to delete rows from target data store. Here is what I have done.
    Source Oracle 10g - staging 11g - Target Oracle 11g
    I have implemented consistent set CDC on data model in staging and added 2 tables to CDC and turned on the journals . Both tables A and B are joined together via Column E (primary key of table A). Table A is the master table(has foreign key). Table B is child table. Target column consists of all the columns of both table A and B.
    Following is what I am able to do and not to do
    ABLE TO DO. If data is inserted into both or any of journalized tables I can successfully load the same in target by performing following steps. 1. Extend the consistency window at model level. Lock subscriber. Run the interface with any source table marked as Journalized data only. Unlock subscriber and purge journal.
    ABLE TO DO. If data is updated in any of the journalized table, along with the steps mentioned above I can execute two interfaces. In one Interface table A marked as journalized data only Joined with table B and in second interface table B marked as Journalized data only joined to table a.
    NOT ABLE TO DO If data is deleted from one or both tables it shows up as journalized data in JV$D<tablename> marked as D with date and subscriber name but when i run the interface by extending the window , locking subscriber executing both interfaces, unlock subscriber purge journals. no change takes place is Target. After unlocking subscriber step, journalized data gets removed from JV$D view. Please let me know what I am doing wrong here. How can rows delted from source can also be deleted from TARGET?
    NOTE : In the flow table SYNC_JRNL_DELETES is YES
    In moel under jounalized table tab Table have following order Table A folloed by Table B
    Thanks in advance
    Greenwich

    Sorry I still do not get it. when you say "Its a legacy app", are you talking about the VB.NET app ?
    If so then I repeat my self :-) Why not to connecting to the SQL server directly?
    * even if you need information from several databases (for example ACCESS + SQL Server), in most cases, it is much better to connect directly and get each information to the app. Then in your app you can combine the information and analyse it
    [Personal Site] [Blog] [Facebook]
    Access app is the legacy app. 

  • How to delete rows in the target table using interface

    hi guys,
    I have an Interface with source as src and target as tgt both has company_code column.In the Interface i need like if a record with company_code already exists we need to delete it and insert the new one from the src and if it is not availble we need to insert it.
    plz tell me how to achieve this?
    Regards,
    sai.

    gatha wrote:
    For this do we need to apply CDC?
    I am not clear on how to delete rows under target, Can you please share the steps to be followed.If you are able to track the deletes in your source data then you dont need CDC. If however you cant - then it might be an option.
    I'll give you an example from what im working on currently.
    We have an ODS, some 400+ tables. Some are needed 'Real-Time' so we are using CDC. Some are OK to be batch loaded overnight.
    CDC captures the Deletes no problem so the standard knowledge modules with a little tweaking for performance are doing the job fine, it handles deletes.
    The overnight batch process however cannot track a delete as its phyiscally gone by the time we run the scenarios, so we load all the insert/updates using a last modified date before we pull all the PK's from the source and delete them using a NOT EXISTS looking back at the collection (staging) table. We had to write our own KM for that.
    All im saying to the OP is that whilst you have Insert / Update flags to set on the target datastore to influence the API code, there is nothing stopping you extending this logic with the UD flags if you wish and writing your own routines with what to do with the deletes - It all depends on how efficient you can identify rows that have been deleted.

  • Insert row and delete row in a table control

    Hi Experts,
    I am using a table control in module pool programming, How can I Insert row and delete row in a table control?
    Thanks in Advance....

    Santhosh,
    Iam using this code..
    FORM fcode_delete_row
                  USING    p_tc_name           TYPE dynfnam
                           p_table_name
                           p_mark_name   .
    -BEGIN OF LOCAL DATA----
      DATA l_table_name       LIKE feld-name.
    data: p_mark_name type c.
      FIELD-SYMBOLS <tc>         TYPE cxtab_control.
      FIELD-SYMBOLS <table>      TYPE STANDARD TABLE.
      FIELD-SYMBOLS <wa>.
      FIELD-SYMBOLS <mark_field>.
    -END OF LOCAL DATA----
      ASSIGN (p_tc_name) TO <tc>.
    get the table, which belongs to the tc                               *
      CONCATENATE p_table_name '[]' INTO l_table_name. "table body
      ASSIGN (l_table_name) TO <table>.                "not headerline
    delete marked lines                                                  *
      DESCRIBE TABLE <table> LINES <tc>-lines.
      LOOP AT <table> ASSIGNING <wa>.
      access to the component 'FLAG' of the table header                 *
        ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.
    if <MARK_FIELD> = 'X'.
        PERFORM f_save_confirmation_9101.
        IF gv_answer EQ '1'.
          DELETE <table> INDEX syst-tabix.
          IF sy-subrc = 0.
            <tc>-lines = <tc>-lines - 1.
          ENDIF.
          ELSE.
          ENDIF.
        ENDIF.
      ENDLOOP.
    in this code   ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.
    if <MARK_FIELD> = 'X'.
    this code is not working...

  • Add row / delete row in PDF Form

    Alright so I am really struggling here and no one has been able to provide me a solid answer to date.
    1. I am creating a PDF form I want users to be able to fill and remit via email
    2. I have created the form in Acrobat 9 Pro via the form Wizard and in some combination with MS Word 2007 for text and table fields to get the forms wizard to auto-populate Adobe form fields.
    3. Some of the tables, i.e. In the first table for "Full Time" and "Part Time" should have check boxes - works fine to date. While others should have drop downs, i.e. platform build, etc - works fine to date.
    4. This is the pressing issue. As they exist today there is a large table as you can clearly see. I want users to be able to simply click an "Add Row" or "Delete Row" button to add another row to the table (or delete) without having to have a massive table.
    I've watched demos on Lynda.com (all of which are irrelevant and provided 0 value), tried to work with what people have responded with previously but all are mainly sample documents and I don't know where to start. In short, I open my form and other forms in LifeCycle Designer ES, take a look at the buttons people have created, the scripts, the XML source, etc. but no idea where to go. If the button needs to be in the table. How it should be scripted. etc. I cannot find a video tutorial anywhere on the web and all the responses simply provide a sample but no idea how to make it a reality in terms of translating their sample into a working dynamic form in PDF. Any help is greatly appreciated. Thanks.

    For a dynamic table you have to design a new XFA-form in Designer.
    Here's a little tutorial how to create dynamic tables.
    http://forms.stefcameron.com/2009/02/25/expandable-table-with-totals/
    Just a little correction.
    You can inport Docx-Files with tables and add / remove rows in a dynamic PDF.
    But, this is not handy, if the table contains more than one row when it is imported because Designer gives every detected row the same name (Row).
    Delete all row excepting the first one and set it to repeatable in the binding tab.
    Then you can use the addInstance() and removeInstance() methods to add/remove row to the table.
    Here an example file I made from a docx file.
    https://acrobat.com/#d=k8XbQWmqu6bhfrrwui93pw

  • Probelm regarding function ( can not perform dml openration inside a query

    hi all,
    i have created on function which is used for delete rows and insert new rows ( records) but when i run i got
    ora-14551 -can not perform a DML operation inside a query
    0ra-06512 - fn_brok_upfdate_dtltbl , line no 21
    this error
    following are my code please help me
    CREATE OR REPLACE FUNCTION Fn_Brok_Update_Dtltbl
    (fnBROK_TYPE VARCHAR2,fnSLAB_ID VARCHAR2, fnINV_TYPE_CODE VARCHAR2)
    RETURN NUMBER
    AS
    fnCOUNT      PLS_INTEGER;
    fnTBLNAME     VARCHAR2(40);
    fnTMPINV_TYPE_CODE VARCHAR2(1000);
    fnTMPINVCODE       VARCHAR2(50);
    fnMYQUERY          VARCHAR2(4000);
    BEGIN
          IF UPPER(fnBROK_TYPE) = 'UPFRONT' THEN
          fnTBLNAME :='UPFRONT_RECD_DTL';
          END IF ;
        IF fnSLAB_ID IS NOT NULL AND fnINV_TYPE_CODE IS NOT NULL THEN
        fnTMPINV_TYPE_CODE := fnINV_TYPE_CODE ;
                 fnMYQUERY := 'SELECT COUNT(*) FROM '||fnTBLNAME||' WHERE SLAB_ID = '''||fnSLAB_ID||'''' ;
                 EXECUTE IMMEDIATE fnMYQUERY INTO fnCOUNT  ;
              IF fnCOUNT > 0 THEN
                    DELETE FROM UPFRONT_RECD_DTL WHERE slab_id = fnslab_id ;
              END IF ;
              WHILE fnTMPINV_TYPE_CODE IS NOT NULL
                    LOOP
                        SELECT  CASE WHEN INSTR(fnTMPINV_TYPE_CODE,',')= 0 THEN fnTMPINV_TYPE_CODE
                        ELSE Strsplit(fnTMPINV_TYPE_CODE,1,INSTR(fnTMPINV_TYPE_CODE,',') - 1  ) END  INTO fnTMPINVCODE FROM DUAL ;
                        fnMYQUERY := 'INSERT INTO '||fnTBLNAME||'(SLAB_ID, INV_TYPE_CODE)
                                VALUES ('''||fnSLAB_ID||''','||fnTMPINVCODE||') ' ;
                        EXECUTE IMMEDIATE fnMYQUERY ;
                        SELECT CASE WHEN INSTR(fnTMPINV_TYPE_CODE,',')= 0 THEN NULL
                        ELSE Strsplit(fnTMPINV_TYPE_CODE,INSTR(fnTMPINV_TYPE_CODE,',')+ 1 , LENGTH(fnTMPINV_TYPE_CODE)) END
                        INTO fnTMPINV_TYPE_CODE FROM DUAL ;
                   END LOOP ;
       fnCOUNT := 1 ;
       RETURN fnCOUNT ;
       END IF ;
    END ;
    [\pre]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    How did you call this function ? from SQL Statement ? Then No way .. . .
    ORA-14551: cannot perform a DML operation inside a query
    Cause: DML operation like insert, update, delete or select-for-update cannot be performed inside a query or under a PDML slave.
    Action: Ensure that the offending DML operation is not performed or use an autonomous transaction to perform the DML operation within the query or PDML slave

  • How to retrieve data from the Database after deleting rows from VO ?

    Hello,
    I am using Jdeveloper 11.1.2.1.0
    I have a master and a child .
    So according my use case when a value in the master vo changes the corresponding child has to be deleted.
    but when i change back to any other value i want to undo the delete operation and get back the values in the child.
    Is there any way to do it?
    Regards,
    Nigel.
    Edited by: Nigel Thomas on Mar 29, 2012 5:07 AM
    Edited by: Nigel Thomas on Mar 29, 2012 5:09 AM

    Hi all,
    I want to do a validation based on a SelectOneChoice List Value.
    Based on which value in the select one choice is being selected, thedata from the VO should be DELETED or NOT-DELETED.
    To do this I wrote a Managed Bean and the delete part is working fine if a particular value of the SelectOneChoice is selected.
    Since the rows are deleted from the VO, after I change the SelectOneChoice value to the previous one I cannot retrieve the rows.
    I thought of two ways:
    1. As the Deleting option in the SelectOneChoice is selected the rows should be deleted from the VO and when reverted back to not-Deleting option the Rollback of Transaction method written in the Managed Bean should take place.
    2. As the Deleting option is selected the data should be deleted from the VO and when reverted back to non-Deleting option, a query should be made from the Database.
    The first plan was dropped because it is not VO-specific. If there are more than 1 VO in the page then whatever changes are made in the page will be reverted back as soon ad Rollback of transaction is done.
    So the now i am left to go with the second plan.
    Is there any way to implement the second plan?
    If so...Will it compromise the performance of the application?
    Or else, Is there any other way to implement my Use-Case ???
    Regards,
    Nigel.

  • Adding delete row icon to report

    We have a custom report that I would like to add the delete row icon to. Is this possible? Thanks in advance.
    Eric

    I am looking to add a sequential row number to some reports.Standard or interactive reports?
    >
    I can't use an ID number because they may not be in a specific order and for asthetics, I would like them to be numbered sequentially. I have a report that we run for different meetings and based on the meeting group is what we base the report on. For example, we have a meeting to review cases with our security team and we have a meeting to review incidents with our server admin team so I have a report based on the different teams we are meeting with and would just like to have a reference to go by. There could be 40 returned rows and if I use an ID they may not be in sequential numerical order so asking someone to look at a row could still be time consuming for them to find and view, if that makes sense.
    >
    That appears to require that the order must be fixed in the query like this:
    select owner, incidentname, incidentaction
    from mytable
    where resolvingteam = 'teamnamehere'
    order by ownerin order for people looking at different instances of the report to be seeing the rows in the same sequence? (The only way to guarantee the sort order in SQL is to <tt>ORDER BY...</tt>) It doesn't appear that there is any room for ambiguity here: you don't want someone instructed to deal with case #4 as a matter of priority when their #4 is numbered according to a different order...
    Do the reports use pagination or should all rows appear on one page? The "+...asking someone to look at a row could still be time consuming for them to find and view...+" comment argues against pagination as it may require one or more page changes to find a given row, but retrieving everything on one page may impact performance and lead to issues with scrolling.
    What version of APEX are you using?
    What theme and template (if it's standard reports) are used?
    What browser(s) and version(s) are used?
    (FWIW, permanent, immutable IDs do appear to be a better idea to eliminate any possible ambiguity.)

  • [Excel] Running a SQL Query to delete rows

    Hello Experts,
    Background: I am attempting to use a dba of my companies time keeping system and implement it with Power BI tools. Given the file size restrictions within Power Bi itself I need to lower my file size by removing all time logs from
    inactive employees.
    I have a question regarding whether or not you can use a sql query to delete rows in excel. I have roughly 200,000+ rows in my excel spreadsheet. I am attempting to delete all rows where an employee equals inactive. I have attempted to
    delete these rows by sorting them and doing a bulk delete and clear contents, but it seems to crash my excel every time.  My thought process is that using a query that does a timed delete might put less of a burden on deleting the massive amount of data.
    I would like to use this: DELETE * FROM [Table_(...)_Actual$] WHERE [Current] = "Inactive" (Will add more once I know it is possible to use sql queries in Excel.
    Any information on whether or not this is possible would be appreciated.
    Regards,
    Link

    Running SQL Query in Excel is possible, however, the delete query is not supported in Excel.
    You are more restricted in deleting Excel data than   data from a relational data source. In a relational database, "row" has no   meaning or existence apart from "record"; in an Excel worksheet, this is not   true. You can delete values
    in fields (cells). Please see:http://support.microsoft.com/kb/257819/en-us
    One workaround : Use update query to set the rows as null, then use select query.
    e.g. 
    SQL = "update [sheet2$A1:B5] set name=null,age=null where name='andy'"
    cnn.Execute SQL
    SQL = "select name,age from [sheet2$A1:B5] where name is not null"
    Wind Zhang
    TechNet Community Support

  • Problems on deleting rows in UIX pages

    Hi,
    I am new on using BC4J, Struts and uiXML and I am having some problems on it. I have tried to make a simple create/update/delete web application.
    First, I have created a DataAction which PageForward displays a table with data from a view object. This page allows the user to select a row and request its deletion by clicking on a submit button.
    The event triggered by the submit button calls a DataAction that displays another PageForward, composed by a read-only form, that asks for confirmation. If the user confirms, a DataAction that performs the Delete method from the view is called and the deletion is successful.
    A problem occurs when I change the readonly property of the fields of the confirmation form: the row deleted is not the selected, but a random one.
    I would like to know why the readonly property of the fields change the Delete method behavior. Also, an example of a simple create/update/delete struts page flow would be appreciated.
    Thanks in advance.
    Verner.

    Verner,
    Are you using JDeveloper 10g Preview or JDeveloper 9i v9.0.3?
    I'm not sure what problem you are having, but I just tried to reproduce your application by doing the following in JDeveloper 10g Preview:
    1) Created new business components.
    2) Created a new struts-config.xml.
    3) Added to the Struts config (using the page flow modeler):
    3.a) Browse data action and page forward to browse.uix
    3.b) Confirm data action and page forward to confirm.uix
    3.c) Delete data action.
    3.d) Link from browse action to confirm action for outcome "delete".
    3.e) Link from confirm action to delete action for outcome "delete".
    3.f) Link from confirm action to browse action for outcome "cancel".
    3.g) Link from delete action to browse action for outcome "success".
    4) Then I made the delete action do the deletion by dragging the Delete operation from my data control onto the Delete data action in the page flow.
    5) Then I created my UI pages.
    browse.uix just has a read-only table created via the Data Control palette and then a delete button that fires the "delete" event when clicked. The delete handler returns the delete outcome.
    confirm.uix has a read-only form also dragged from the Data Control palette for the same data control. There's a delete and a cancel button, each of which fire an event of the same name that returns an outcome of the same name.
    When I run browseDataAction, I see my table. When I click "Delete", I see the read-only form with the details for the selected row. Clicking "Delete" from the confirmation page removes the same row I saw in the confirmation page, then goes back to the browse page showing the same range but with the given row removed.
    If you continue to see a problem, what exactly is wrong? It should be the case that (A) the row selected in the table, (B) the row whose details are shown in the confirmation page, and (C) the row that gets deleted are the same row. If it's not the case that A = B = C, please give more details about what values of these three rows you are seeing. Is A=B but not =C? Or is B=C but not =A?
    Hope this helps,
    -brian
    UIX Team

Maybe you are looking for

  • Audio mini display port - hdmi

    Hi, I have a Macbook6,1 (2010) and I would to know if I there is a mini display-port to hdmi cable with audio support. Thank you.

  • XY Graph Cursor Problem in Labview 7.1.1?

    Hallo, I am  using Labview 7.1.1 and I am facing one problem with XY graph cursor. If I am moving cursor in one graph, I am expecting same movement in another Graph. But when I move cursor in Graph1, cursor in second graph moves but not to exact X va

  • My adobe xi pro doesn't automatically open pdf documents

    everytime I dowload a pdf document the  adobe xi pro does not open the document automatically.  I haveto open acrobat then find the download to open.

  • ITunes lost ... how to sync iPhone data back to blank iTunes ..

    Hello Everyone, Previous iTunes was lost and now have formatted and reinstalled Windows7 x64.  iPhone (10.5.1) is currently backed up, via the new iTunes, to iCloud.  And to the new computer as well.  No other devices or computers involved. How do I

  • Reason 4 levels quiet in logic???

    I am using Reason 4 and logic together. When using a redrum, subtractor, etc... from Reason I can never get any volume out of them when rewired to Logic. For example: I tried a couple kick samples playing a pattern in redrum and in the logic mixer it