RETURNING clause

I have a table that has a PK value that is generated by a sequence that fetches sys_guid() for the value via an insert trigger.
How can i insert a record and get the pk value that was generated in one statement?
I know about the RETURNING clause and how it works. There are lots of examples out on google about using the RETURNING clause in a PL/SQL block.
My problem is that i am not writing a stored proc or function. I'm just executing SQL through a client (Aqua). So i don't have variables and bindings or anything like that.
What i want is to write something like the following:
INSERT INTO CONTACTS.TBLPEOPLE(PPLKEEPCONFIDENTIAL, PPLNAMELAST, PPLNAMEFIRST, PPLNAMEPREFIX, PPLNAMEMIDDLE, PPLNAMESUFFIX, PPLNAMEPREFERRED, PPLACTIVE, ADTUSERID, ADTDATELASTUPDATE)
VALUES('1', 'Doe', 'John', 'Mr', 'Q', '', '', '1', 'kg', SYSDATE)
RETURN PPLGUID
and for the result to be - 1 record inserted, here is the PPLGUID that was generated - '12CD-23FBBD-23222'
Can this be done?

My problem is that i am not writing a stored proc or functionYou don't have to. Can't you just wrap the INSERT/RETURNING into an anonymous pl/sql block?
SQL> create sequence t_seq start with 42;
Sequence created.
SQL> declare
  2     l_seq number;
  3  begin
  4     insert into t values (t_seq.nextval)
  5        returning n into l_seq;
  6     dbms_output.put_line('generated ' || l_seq);
  7  end;
  8  /
generated 42
PL/SQL procedure successfully completed.Edited by: SomeoneElse on Jul 30, 2009 12:27 PM
(working example)

Similar Messages

  • RETURN Clause in IF...ELSE Condition in PL/SQL Block

    Hi
    Could you please explain me the importance of a RETURN Clause in IF..ELSE Condition in PL/SQL Block with
    an example.
    Regards
    Nakul.V

    Hi,
    RETURN clause permits get out of the block. For more information you can see [Using the RETURN Statement|http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/subprograms.htm#sthref1683]
    SET SERVEROUTPUT ON
    BEGIN
        IF 1 = 1 THEN
            dbms_output.put_line('Before return');
            RETURN;
        ELSE
            dbms_output.put_line('Else');
        END IF;
        dbms_output.put_line('After if');
    END;
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
    Connected as hr
    SQL>
    SQL> BEGIN
      2      IF 1 = 1 THEN
      3          dbms_output.put_line('Before return');
      4          RETURN;
      5      ELSE
      6          dbms_output.put_line('Else');
      7      END IF;
      8      dbms_output.put_line('After if');
      9  END;
    10  /
    Before return
    PL/SQL procedure successfully completed
    SQL> Regards,
    Edited by: Walter Fernández on Dec 12, 2008 9:41 AM - Adding output
    Edited by: Walter Fernández on Dec 12, 2008 9:43 AM - Adding URL...

  • Error in RETURNING clause in INSERT.....SELECT query

    Hi Friends
    I am having an error: "SQL stmt not properly ended" when i run the below code.
    Cant i fetch multiple values from the returning clause into a collection variable??
    insert into consumption__C
         (SITECODE, SALESORG, PRODFAM,CAMPCODE, CYEAR, MDATE, SYSENV, MTYPE, ACCOUNT__C, SUPPLIER__C,
    PRODUCT_PER_UNIT__C, PRODUCT__C, UNIT__C, AMOUNT_Y__C, VOLUME_Y__C, CURRENCY__C,SUPPLYMODE__C)
         select      ' '                    Sitecode,
                        ' '          Salesorg,
    ' '                    Prodfam,
                        ' '                    campcode,
                        ' '                    cyear,
                        pcurr_mig               MDATE,
                        psysenv                    SYSENV,
                        'NSet'                    MTYPE,                          
                        c.sitecode               Account__c,
                        ' '                    supplier__c,
                        ' '                    Product_per_unit__c,
                        c.material               Product__c,
                        ' '                    unit__c,
                        c.Amount           Amount_y__c,
                        ' '                    Volume__c,
                        'Euro'                    Currency__c,
                        ' '                    Supply_Mode__c
    from load_sales_customer_site c     returning c.customer_code bulk collect INTO temp;
    Kindly guide...... what is the problem!!
    Thanks in advance

    nice idea, but you can't use returning into with
    insert as select:
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL> create table exm(id primary key) as select object_id from all_objects
      2  where rownum <=100;
    Table created.
    SQL> declare
      2  type num_tbl is table of number;
      3   ll_num_tbl num_tbl;
      4   begin
      5   insert into exm(id)
      6  (select object_id * 100 from all_objects where rownum
      7   <=100) returning id into ll_num_tbl;
      8  end;
      9  /
    <=100) returning id into ll_num_tbl;
    ERROR at line 7:
    ORA-06550: line 7, column 9:
    PL/SQL: ORA-00933: SQL command not properly ended
    ORA-06550: line 5, column 2:
    PL/SQL: SQL Statement ignoredAmiel

  • Returning clause in MERGE statement

    Hi ,
    I'm using Oracle 10g Version
    I tried the below code using UPDATE  with Returning Clause & MERGE with Returning Clause .
    I found NO errors while working with UPDATE statement  . The following is the code with UPDATE statement
    DECLARE
       TYPE empno_list IS TABLE OF emp.empno%TYPE;
       vempno_list   empno_list;
    BEGIN
          UPDATE emp
             SET comm = 11
           WHERE deptno IN (SELECT deptno FROM dept)
       RETURNING empno
            BULK COLLECT INTO vempno_list;
       FOR i IN vempno_list.FIRST .. vempno_list.LAST
       LOOP
          DBMS_OUTPUT.put_line ('Values of EMP ' || vempno_list (i));
       END LOOP;
    END;  
    But getting the error PL/SQL: ORA-00933: SQL command not properly ended  when working with MERGE Statement
    declare
    type empno_list  is  table of emp.empno%type;
    vempno_list empno_list;
    begin               
       merge into emp tgt
          using dept src
            on (src.deptno =tgt.deptno)
            when matched then
             update set tgt.comm=12
           returning tgt.empno bulk collect into vempno_list ;
            for i in vempno_list.first .. vempno_list.last loop
                    dbms_output.put_line('Values of EMP '||vempno_list(i) ) ;
            end loop;
    end; 
    Please  suggest me

    Probably because the RETURNING INTO clause doesn't belong to MERGE statement. It's available only for INSERT, UPDATE and DELETE. Here is the quote from Oracle Documentation:
    The static RETURNING INTO clause belongs to a DELETE, INSERT, or UPDATE statement. The dynamic RETURNING INTO clause belongs to an EXECUTEIMMEDIATE statement.
    And here's the link.
    RETURNING INTO Clause
    Hope it helps.
    Ishan

  • Using RETURNING clause with Execute Immediate

    I wrote a query to update a table and return the column in to a nested table type variable using returning clause but its not working I am getting error like
    ORA-06550: line 66, column 22:
    PLS-00306: wrong number or types of arguments in call to '||'
    ORA-06550: line 66, column 4:
    PL/SQL: Statement ignored
    I am getting error in following part of my query
    || 'RETURNING if_row_status bulk collect INTO '
    || v_if_row_status;
    v_if_row_status is defined as -
    TYPE v_count IS TABLE OF varchar2(50) INDEX BY BINARY_INTEGER;
    v_if_row_status v_count;

    I am trying to update a table for diffrent column if they are null and want no of column updated for each column.
    I wrote following query but I am not getting the correct output.
    UPDATE
    Temp_Bulk_Col_POC
    SET if_row_status = 'VALIDATED',
    if_row_processed_date = sysdate,
    if_row_error_msg =
    CASE
    WHEN record_type IS NULL
    THEN 'RECORD_TYPE is a required column and cannot be NULL'
    WHEN source_system IS NULL
    THEN 'SOURCE_SYSTEM is a required column and cannot be NULL'
    WHEN record_company IS NULL
    THEN 'RECORD_COMPANY is a required column and cannot be NULL'
    WHEN record_system IS NULL
    THEN 'RECORD_SYSTEM is a required column and cannot be NULL'
    WHEN txn_flag IS NULL
    THEN 'TXN_FLAG is a required column and cannot be NULL'
    WHEN create_date IS NULL
    THEN 'CREATE_DATE is a required column and cannot be NULL'
    WHEN UPDATE_date IS NULL
    THEN 'UPDATE_DATE is a required column and cannot be NULL'
    WHEN source_customer_id IS NULL
    THEN 'SOURCE_CUSTOMER_ID is a required column and cannot be NULL'
    WHEN source_product_id IS NULL
    THEN 'SOURCE_PRODUCT_ID is a required column and cannot be NULL'
    WHEN az_product_id IS NULL
    THEN 'AZ_PRODUCT_ID is a required column and cannot be NULL'
    WHEN decile IS NULL
    THEN 'DECILE is a required column and cannot be NULL'
    END
    WHERE if_row_status IS NULL
    AND (record_type IS NULL
    OR source_system IS NULL
    OR record_company IS NULL
    OR record_system IS NULL
    OR txn_flag IS NULL
    OR create_date IS NULL
    OR UPDATE_date IS NULL
    OR source_customer_id IS NULL
    OR source_product_id IS NULL
    OR az_product_id IS NULL
    OR decile IS NULL)
    RETURNING if_row_status,record_type,source_system,record_company,record_system,
    txn_flag,create_date,UPDATE_date,source_customer_id,source_product_id,az_product_id,
    decile
    BULK COLLECT INTO
    v_if_row_status,v_record_type,v_source_system,
    v_record_company,v_record_system,v_txn_flag,v_create_date,v_UPDATE_date,
    v_source_customer_id,v_source_product_id,v_az_product_id,v_decile;
    its showing same number for all the column.
    how I can collect based on the coulmn updated

  • RETURNING CLAUSE ERROR

    Hi All,
    I was trying to use RETURNING CLAUSE into pl/sql process but it gives error as :-
    "1 error has occurred
    * ORA-06550: line 12, column 13: PL/SQL: ORA-00933: SQL command not properly ended ORA-06550: line 6, column 3: PL/SQL: SQL Statement ignored"
    Pl/sql process contains code as below:-
    DECLARE
    vID VARCHAR2(20);
    BEGIN
    INSERT INTO STUDENT_INFORMATION (DOB, AGE, OTHER_DATE, OTHER_AGE)
    SELECT TO_DATE(C1_C002, 'MM/DD/YYYY'), C1_C003, TO_DATE(C1_C004, 'MM/DD/YYYY'), C1_C005
    FROM (SELECT C1.C002 C1_C002, C1.C003 C1_C003, C1.C004 C1_C004, C1.C005 C1_C005
    FROM APEX_COLLECTIONS C1
    WHERE C1.COLLECTION_NAME = 'INFORMATION'
    AND C1.SEQ_ID = 1)
    RETURNING ID INTO vID; // IF I REMOVE THIS LINE & AND THIS INSERT STATEMENT WITH SEMICOLON(;) IN THE ABOVE LINE THE CODE WORKS FINE
    // BUT THAN THE I'M GETTING ERROR WITH THE NEXT INSERT STATEMENT
    INSERT INTO STUDENT_INFORMATION_GRADE (ID, GRADE_DATE, GRADE_AGE)
    SELECT vID, TO_DATE(C2_C002, 'MM/DD/YYYY'), C2_C003
    FROM (SELECT C2.C002 C2_C002, C2.C003 C2_C003
    FROM APEX_COLLECTIONS C2, APEX_COLLECTIONS C1
    WHERE C2.COLLECTION_NAME = 'GRADE'
    AND C1.COLLECTION_NAME = 'INFORMATION'
    AND C1.SEQ_ID = C2.SEQ_ID
    AND C1.SEQ_ID = 1);
    INSERT INTO STUDENT_INFORMATION_RESULT (ID, FINAL_RESULT)
    SELECT vID, C3_C002
    FROM (SELECT C3.C002 C3_C002
    FROM APEX_COLLECTIONS C3, APEX_COLLECTIONS C1
    WHERE C3.COLLECTION_NAME = 'RESULT'
    AND C1.COLLECTION_NAME = 'INFORMATION'
    AND C1.SEQ_ID = C3.SEQ_ID
    AND C1.SEQ_ID = 1);
    END;
    I have trying RETURNING CLAUSE with other pl/sql process something like this :-
    DECLARE
    vID VARCHAR2(20;
    BEGIN
    INSERT INTO ..... ()
    VALUES ()
    RETURNING ID INTO vID;
    INSERT INTO ... (ID, ....)
    VALUES (vID, ..........)
    END;
    the above code works well with no errors, but when I'm using RETURNING CLAUSE with COLLECTIONS it gives me error.
    Can anybody help me out?
    Thanks
    Deep

    Deep:
    You can perform the inserts in a cursor loop as followsfor x in (SELECT C1.C002 C1_C002, C1.C003 C1_C003, C1.C004 C1_C004, C1.C005 C1_C005
    FROM APEX_COLLECTIONS C1
    WHERE C1.COLLECTION_NAME = 'INFORMATION'
    AND C1.SEQ_ID = 1)
    loop
    INSERT INTO STUDENT_INFORMATION (DOB, AGE, OTHER_DATE, OTHER_AGE)
    values ( TO_DATE(x.C1_C002, 'MM/DD/YYYY'),x.C1_C003, TO_DATE(x.C1_C004, 'MM/DD/YYYY'),x.C1_C005)
    RETURNING ID INTO vID;
    end loop;Varad

  • Insert returning clause in Batch operation

    I believe "insert returning" clause is not allowed in JDBC Batch operation, Is there any alternative way to achieve the same?
    version: 10g release 2.
    My requierment:
    1. I would like to know the inserted value(sequence) after insert.
    2. It is kind of mass upload, so looking at Batch operation.
    Thanks,
    Ravuthakumar

    2. It is kind of mass upload, so looking at Batch operation.That is not possible AFAIK.I'm pretty sure you could accomplish it with a callable statement that's passed a(some) collection(s) of values that are inserted en masse using an anonymous block something like this (compiled by eye) which will accumulate the returned value(s) into a(other) collection(s).
    DECLARE
        in_collection_1  some_collection_type := ?;
        in_collection_n  some_collection_type := ?;
        out_collection_1 some_collection_type;
        out_collection_n some_collection_type;
    BEGIN
        FORALL ix IN 1 .. in_collection_1.COUNT
            INSERT INTO your_table(column1, ..., column _n)
                VALUES (in_collection_1(ix), ..., in_collection_n(ix))
                RETURNING retcolumn_1, ..., retcolumn_n
                    BULK COLLECT INTO out_collection_1, ... ,out_collection_n ;
        ? := out_collection_1;
        ? := out_collection_n;
    EXCEPTION
    END;Not sure if I've tried this exact thing myself yet, and I won't get into how to pass the collections back and forth here, but I think it can be accomplished in one shot. If your passed collections are of uncomplicated types you might even be able to do it using vanilla JDBC, but Oracle extensions may be required.
    Retrieving DML Results into a Collection with the RETURNING INTO Clause
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/tuning.htm#sthref2241
    Working with Oracle Collections
    http://download-east.oracle.com/docs/cd/B19306_01/java.102/b14355/oraarr.htm#g1072333
    Accessing PL/SQL Index-by Tables
    http://download-east.oracle.com/docs/cd/B19306_01/java.102/b14355/oraint.htm#BABBGDFA
    Good luck!
    -Rick
    Edited by: tarpaw on Mar 25, 2010 1:56 PM

  • ORA-22816: unsupported feature with RETURNING clause

    My database is: 10g 10.2.0.3.0
    Sorry this is a little long but I need some help!
    The insert is being done in PLSQL with SQL.
    I am trying to Insert a row into a view the view has 3 Instead of triggers. (insert, update, delete)
    I have looked up this error and have seen that you cannot use a RETURNING clause on view with INSTEAD OF triggers
    because it is not supported?
    My issue is, I cannot find any code around this view where a RETURNING clause is being used.
    Does anyone have any idea what else this could be??
    1. The trigger populates old and new values based on wether it is an insert update or delete,
    and then calls a procedure to do the insert, update or delete.
    2. Then calls another procedure that builds an XML string to pass into oracle queueing.
    They are all new triggers and procedures I have written.
    I searched for "RETURNING" in all other dependent objects for this view and could not find anything.
    Thats why I was wondering if it could be anything else?
    Another FYI. This whole procedure is actually on some other tables as well. It works fine with no issue on the tables.
    It wasn't until I started testing the VIEW that I started getting this error.
    I commented out the procedure calls and I still have an issue. I disabled the trigger and the issue went away.
    Another FYI to make it more interesting, The instead of update and the instead of delete triggers on this view
    work just fine with the package calls and everything. They are written exactly as the instead of insert trigger.
    It is only the instead of insert trigger that it is getting this error.
    Can someone help??? See Instead of Insert trigger below.
    {CREATE OR REPLACE TRIGGER TRIIBTF97A
    INSTEAD OF INSERT ON RTI_BUS_TA_FORM97A_VW
    FOR EACH ROW
    DECLARE
      old_rec        RTI_BUS_TA_FORM97A_VW%ROWTYPE;
      new_rec        RTI_BUS_TA_FORM97A_VW%ROWTYPE;
      v_change_type  VARCHAR2(8);
      v_event_source VARCHAR2(20) := 'TRIIBTF97A';
    BEGIN
      -- only new values on inserts
      new_rec.DOC_LOC_NBR                                   := :new.DOC_LOC_NBR              ;
      new_rec.TRAN_ID                                       := :new.TRAN_ID                  ;
      new_rec.RPTD_ADJ_SUBTOT_AMT                           := :new.RPTD_ADJ_SUBTOT_AMT      ;
      new_rec.CALC_ADJ_SUBTOT_AMT                           := :new.CALC_ADJ_SUBTOT_AMT      ;
      new_rec.RPTD_ADJ_SUBTOT2_AMT                          := :new.RPTD_ADJ_SUBTOT2_AMT     ;
      new_rec.CALC_ADJ_SUBTOT2_AMT                          := :new.CALC_ADJ_SUBTOT2_AMT     ;
      new_rec.RPTD_AGI_PRENOL_AMT                           := :new.RPTD_AGI_PRENOL_AMT      ;
      new_rec.CALC_AGI_PRENOL_AMT                           := :new.CALC_AGI_PRENOL_AMT      ;
      new_rec.RPTD_BAL_DUE_AMT                              := :new.RPTD_BAL_DUE_AMT         ;
      new_rec.CALC_BAL_DUE_AMT                              := :new.CALC_BAL_DUE_AMT         ;
      new_rec.RPTD_CC_CRED_AMT                              := :new.RPTD_CC_CRED_AMT         ;
      new_rec.CALC_CC_CRED_AMT                              := :new.CALC_CC_CRED_AMT         ;
      new_rec.RPTD_CHAR_CONTRIB_AMT                         := :new.RPTD_CHAR_CONTRIB_AMT    ;
      new_rec.CALC_CHAR_CONTRIB_AMT                         := :new.CALC_CHAR_CONTRIB_AMT    ;
      new_rec.RPTD_DIV_DEDUC_AMT                            := :new.RPTD_DIV_DEDUC_AMT       ;
      new_rec.CALC_DIV_DEDUC_AMT                            := :new.CALC_DIV_DEDUC_AMT       ;
      new_rec.RPTD_EST_PMT_AMT                              := :new.RPTD_EST_PMT_AMT         ;
      new_rec.CALC_EST_PMT_AMT                              := :new.CALC_EST_PMT_AMT         ;
      new_rec.RPTD_EZ_EMP_CRED_AMT                          := :new.RPTD_EZ_EMP_CRED_AMT     ;
      new_rec.CALC_EZ_EMP_CRED_AMT                          := :new.CALC_EZ_EMP_CRED_AMT     ;
      new_rec.RPTD_FED_INCM_AMT                             := :new.RPTD_FED_INCM_AMT        ;
      new_rec.CALC_FED_INCM_AMT                             := :new.CALC_FED_INCM_AMT        ;
      new_rec.RPTD_FRGN_GROSS_UP_AMT                        := :new.RPTD_FRGN_GROSS_UP_AMT   ;
      new_rec.CALC_FRGN_GROSS_UP_AMT                        := :new.CALC_FRGN_GROSS_UP_AMT   ;
      new_rec.RPTD_LREPT_AMT                                := :new.RPTD_LREPT_AMT           ;
      new_rec.CALC_LREPT_AMT                                := :new.CALC_LREPT_AMT           ;
      new_rec.RPTD_HRSJT_AMT                                := :new.RPTD_HRSJT_AMT           ;
      new_rec.CALC_HRSJT_AMT                                := :new.CALC_HRSJT_AMT           ;
      new_rec.RPTD_RELST_TAX_AMT                            := :new.RPTD_RELST_TAX_AMT       ;
      new_rec.CALC_RELST_TAX_AMT                            := :new.CALC_RELST_TAX_AMT       ;
      new_rec.RPTD_GOVT_INT_AMT                             := :new.RPTD_GOVT_INT_AMT        ;
      new_rec.CALC_GOVT_INT_AMT                             := :new.CALC_GOVT_INT_AMT        ;
      new_rec.RPTD_IN_AGI1_AMT                              := :new.RPTD_IN_AGI1_AMT         ;
      new_rec.CALC_IN_AGI1_AMT                              := :new.CALC_IN_AGI1_AMT         ;
      new_rec.RPTD_LRSJT_AMT                                := :new.RPTD_LRSJT_AMT           ;
      new_rec.CALC_LRSJT_AMT                                := :new.CALC_LRSJT_AMT           ;
      new_rec.RPTD_IN_NOL_AMT                               := :new.RPTD_IN_NOL_AMT          ;
      new_rec.CALC_IN_NOL_AMT                               := :new.CALC_IN_NOL_AMT          ;
      new_rec.RPTD_INCM_SUBTOT_AMT                          := :new.RPTD_INCM_SUBTOT_AMT     ;
      new_rec.CALC_INCM_SUBTOT_AMT                          := :new.CALC_INCM_SUBTOT_AMT     ;
      new_rec.RPTD_INT_DUE_AMT                              := :new.RPTD_INT_DUE_AMT         ;
      new_rec.CALC_INT_DUE_AMT                              := :new.CALC_INT_DUE_AMT         ;
      new_rec.RPTD_IRECV_CRED_AMT                           := :new.RPTD_IRECV_CRED_AMT      ;
      new_rec.CALC_IRECV_CRED_AMT                           := :new.CALC_IRECV_CRED_AMT      ;
      new_rec.RPTD_LATE_PEN_AMT                             := :new.RPTD_LATE_PEN_AMT        ;
      new_rec.CALC_LATE_PEN_AMT                             := :new.CALC_LATE_PEN_AMT        ;
      new_rec.RPTD_LIC_CRED_AMT                             := :new.RPTD_LIC_CRED_AMT        ;
      new_rec.CALC_LIC_CRED_AMT                             := :new.CALC_LIC_CRED_AMT        ;
      new_rec.RPTD_MODIF_AMT                                := :new.RPTD_MODIF_AMT           ;
      new_rec.CALC_MODIF_AMT                                := :new.CALC_MODIF_AMT           ;
      new_rec.RPTD_NAC_CRED_AMT                             := :new.RPTD_NAC_CRED_AMT        ;
      new_rec.CALC_NAC_CRED_AMT                             := :new.CALC_NAC_CRED_AMT        ;
      new_rec.RPTD_NONBUS_DISTA_AMT                         := :new.RPTD_NONBUS_DISTA_AMT    ;
      new_rec.CALC_NONBUS_DISTA_AMT                         := :new.CALC_NONBUS_DISTA_AMT    ;
      new_rec.RPTD_LTOT_AMT                                 := :new.RPTD_LTOT_AMT            ;
      new_rec.CALC_LTOT_AMT                                 := :new.CALC_LTOT_AMT            ;
      new_rec.RPTD_OTH_ADJ_AMT                              := :new.RPTD_OTH_ADJ_AMT         ;
      new_rec.CALC_OTH_ADJ_AMT                              := :new.CALC_OTH_ADJ_AMT         ;
      new_rec.RPTD_OTH_CRED_AMT                             := :new.RPTD_OTH_CRED_AMT        ;
      new_rec.CALC_OTH_CRED_AMT                             := :new.CALC_OTH_CRED_AMT        ;
      new_rec.RPTD_OTH_PMT_AMT                              := :new.RPTD_OTH_PMT_AMT         ;
      new_rec.CALC_OTH_PMT_AMT                              := :new.CALC_OTH_PMT_AMT         ;
      new_rec.RPTD_OVERPMT_CRED_AMT                         := :new.RPTD_OVERPMT_CRED_AMT    ;
      new_rec.CALC_OVERPMT_CRED_AMT                         := :new.CALC_OVERPMT_CRED_AMT    ;
      new_rec.RPTD_PRIOR_EXT_PMT_AMT                        := :new.RPTD_PRIOR_EXT_PMT_AMT   ;
      new_rec.CALC_PRIOR_EXT_PMT_AMT                        := :new.CALC_PRIOR_EXT_PMT_AMT   ;
      new_rec.RPTD_HRNTX_AMT                                := :new.RPTD_HRNTX_AMT           ;
      new_rec.CALC_HRNTX_AMT                                := :new.CALC_HRNTX_AMT           ;
      new_rec.RPTD_LRNTX_AMT                                := :new.RPTD_LRNTX_AMT           ;
      new_rec.CALC_LRNTX_AMT                                := :new.CALC_LRNTX_AMT           ;
      new_rec.RPTD_REFUND_DUE_AMT                           := :new.RPTD_REFUND_DUE_AMT      ;
      new_rec.CALC_REFUND_DUE_AMT                           := :new.CALC_REFUND_DUE_AMT      ;
      new_rec.RPTD_RELST_PP_TAX_AMT                         := :new.RPTD_RELST_PP_TAX_AMT    ;
      new_rec.CALC_RELST_PP_TAX_AMT                         := :new.CALC_RELST_PP_TAX_AMT    ;
      new_rec.RPTD_STATE_TAX_AMT                            := :new.RPTD_STATE_TAX_AMT       ;
      new_rec.CALC_STATE_TAX_AMT                            := :new.CALC_STATE_TAX_AMT       ;
      new_rec.RPTD_SU_TAX_AMT                               := :new.RPTD_SU_TAX_AMT          ;
      new_rec.CALC_SU_TAX_AMT                               := :new.CALC_SU_TAX_AMT          ;
      new_rec.RPTD_HREPT_AMT                                := :new.RPTD_HREPT_AMT           ;
      new_rec.CALC_HREPT_AMT                                := :new.CALC_HREPT_AMT           ;
      new_rec.RPTD_SUPP_NI_TAX1_AMT                         := :new.RPTD_SUPP_NI_TAX1_AMT    ;
      new_rec.CALC_SUPP_NI_TAX1_AMT                         := :new.CALC_SUPP_NI_TAX1_AMT    ;
      new_rec.RPTD_TAX_BUS_INC_AMT                          := :new.RPTD_TAX_BUS_INC_AMT     ;
      new_rec.CALC_TAX_BUS_INC_AMT                          := :new.CALC_TAX_BUS_INC_AMT     ;
      new_rec.RPTD_TOT_REL_TAX_AMT                          := :new.RPTD_TOT_REL_TAX_AMT     ;
      new_rec.CALC_TOT_REL_TAX_AMT                          := :new.CALC_TOT_REL_TAX_AMT     ;
      new_rec.RPTD_TAX_SUBTOT_AMT                           := :new.RPTD_TAX_SUBTOT_AMT      ;
      new_rec.CALC_TAX_SUBTOT_AMT                           := :new.CALC_TAX_SUBTOT_AMT      ;
      new_rec.RPTD_TCSP_CRED_AMT                            := :new.RPTD_TCSP_CRED_AMT       ;
      new_rec.CALC_TCSP_CRED_AMT                            := :new.CALC_TCSP_CRED_AMT       ;
      new_rec.RPTD_TOT_CRED_AMT                             := :new.RPTD_TOT_CRED_AMT        ;
      new_rec.CALC_TOT_CRED_AMT                             := :new.CALC_TOT_CRED_AMT        ;
      new_rec.RPTD_TOT_DUE_AMT                              := :new.RPTD_TOT_DUE_AMT         ;
      new_rec.CALC_TOT_DUE_AMT                              := :new.CALC_TOT_DUE_AMT         ;
      new_rec.RPTD_TOT_OVERPMT_AMT                          := :new.RPTD_TOT_OVERPMT_AMT     ;
      new_rec.CALC_TOT_OVERPMT_AMT                          := :new.CALC_TOT_OVERPMT_AMT     ;
      new_rec.RPTD_TOT_PMT_AMT                              := :new.RPTD_TOT_PMT_AMT         ;
      new_rec.CALC_TOT_PMT_AMT                              := :new.CALC_TOT_PMT_AMT         ;
      new_rec.RPTD_HTOT_AMT                                 := :new.RPTD_HTOT_AMT            ;
      new_rec.CALC_HTOT_AMT                                 := :new.CALC_HTOT_AMT            ;
      new_rec.RPTD_TAX_DUE_AMT                              := :new.RPTD_TAX_DUE_AMT         ;
      new_rec.CALC_TAX_DUE_AMT                              := :new.CALC_TAX_DUE_AMT         ;
      new_rec.RPTD_TAX_DUE2_AMT                             := :new.RPTD_TAX_DUE2_AMT        ;
      new_rec.CALC_TAX_DUE2_AMT                             := :new.CALC_TAX_DUE2_AMT        ;
      new_rec.RPTD_UNDERPMT_PEN_AMT                         := :new.RPTD_UNDERPMT_PEN_AMT    ;
      new_rec.CALC_UNDERPMT_PEN_AMT                         := :new.CALC_UNDERPMT_PEN_AMT    ;
      new_rec.RFND_1_INT_RATE                               := :new.RFND_1_INT_RATE          ;
      new_rec.RFND_1_AMT                                    := :new.RFND_1_AMT               ;
      new_rec.RFND_2_INT_RATE                               := :new.RFND_2_INT_RATE          ;
      new_rec.RFND_2_AMT                                    := :new.RFND_2_AMT               ;
      new_rec.RFND_3_INT_RATE                               := :new.RFND_3_INT_RATE          ;
      new_rec.RFND_3_AMT                                    := :new.RFND_3_AMT               ;
      new_rec.RFND_4_INT_RATE                               := :new.RFND_4_INT_RATE          ;
      new_rec.RFND_4_AMT                                    := :new.RFND_4_AMT               ;
      new_rec.RPTD_HRAMT_AMT                                := :new.RPTD_HRAMT_AMT           ;
      new_rec.CALC_HRAMT_AMT                                := :new.CALC_HRAMT_AMT           ;
      new_rec.RPTD_LRAMT_AMT                                := :new.RPTD_LRAMT_AMT           ;
      new_rec.CALC_LRAMT_AMT                                := :new.CALC_LRAMT_AMT           ;
      new_rec.RPTD_CMBTX_AMT                                := :new.RPTD_CMBTX_AMT           ;
      new_rec.CALC_CMBTX_AMT                                := :new.CALC_CMBTX_AMT           ;
      new_rec.RPTD_HRSUB_AMT                                := :new.RPTD_HRSUB_AMT           ;
      new_rec.CALC_HRSUB_AMT                                := :new.CALC_HRSUB_AMT           ;
      new_rec.RPTD_LRSUB_AMT                                := :new.RPTD_LRSUB_AMT           ;
      new_rec.CALC_LRSUB_AMT                                := :new.CALC_LRSUB_AMT           ;
      new_rec.RPTD_FUEL_CRED_AMT                            := :new.RPTD_FUEL_CRED_AMT       ;
      new_rec.CALC_FUEL_CRED_AMT                            := :new.CALC_FUEL_CRED_AMT       ;
      new_rec.RPTD_ADJUST_AMT                               := :new.RPTD_ADJUST_AMT          ;
      new_rec.CALC_ADJUST_AMT                               := :new.CALC_ADJUST_AMT          ;
      new_rec.RPTD_CARRY_YR_NBR                             := :new.RPTD_CARRY_YR_NBR        ;
      new_rec.CALC_CARRY_YR_NBR                             := :new.CALC_CARRY_YR_NBR        ;
      new_rec.RPTD_APPORT_PCNT                              := :new.RPTD_APPORT_PCNT         ;
      new_rec.CALC_APPORT_PCNT                              := :new.CALC_APPORT_PCNT         ;
      new_rec.RPTD_IN_APPORT_AMT                            := :new.RPTD_IN_APPORT_AMT       ;
      new_rec.CALC_IN_APPORT_AMT                            := :new.CALC_IN_APPORT_AMT       ;
      new_rec.RPTD_AGI_TAX_AMT                              := :new.RPTD_AGI_TAX_AMT         ;
      new_rec.CALC_AGI_TAX_AMT                              := :new.CALC_AGI_TAX_AMT         ;
      new_rec.RPTD_NONBUS_DISTB_AMT                         := :new.RPTD_NONBUS_DISTB_AMT    ;
      new_rec.CALC_NONBUS_DISTB_AMT                         := :new.CALC_NONBUS_DISTB_AMT    ;
      new_rec.RPTD_TOT_INC_AMT                              := :new.RPTD_TOT_INC_AMT         ;
      new_rec.CALC_TOT_INC_AMT                              := :new.CALC_TOT_INC_AMT         ;
      new_rec.REMIT_AMT                                     := :new.REMIT_AMT                ;
      new_rec.RFND_1_DT                                     := :new.RFND_1_DT                ;
      new_rec.PPIS_NAME                                     := :new.PPIS_NAME                ;
      new_rec.RFND_2_DT                                     := :new.RFND_2_DT                ;
      new_rec.EXT_FILED_INDC                                := :new.EXT_FILED_INDC           ;
      new_rec.RFND_3_DT                                     := :new.RFND_3_DT                ;
      new_rec.INIT_RET_INDC                                 := :new.INIT_RET_INDC            ;
      new_rec.RFND_4_DT                                     := :new.RFND_4_DT                ;
      new_rec.FINAL_RET_INDC                                := :new.FINAL_RET_INDC           ;
      new_rec.INT_PD_TO_DT                                  := :new.INT_PD_TO_DT             ;
      new_rec.UNITARY_COMB_INDC                             := :new.UNITARY_COMB_INDC        ;
      new_rec.PPIS_ST_3_ADDR                                := :new.PPIS_ST_3_ADDR           ;
      new_rec.PPIS_ST_1_ADDR                                := :new.PPIS_ST_1_ADDR           ;
      new_rec.PPIS_CHK_BOX                                  := :new.PPIS_CHK_BOX             ;
      new_rec.PPIS_PHN_NMBR                                 := :new.PPIS_PHN_NMBR            ;
      new_rec.INTERNAL_ID                                   := :new.INTERNAL_ID              ;
      new_rec.PPIS_ST_2_ADDR                                := :new.PPIS_ST_2_ADDR           ;
      new_rec.PPIS_CTRY_CD                                  := :new.PPIS_CTRY_CD             ;
      new_rec.PPIS_CTY_ADDR                                 := :new.PPIS_CTY_ADDR            ;
      new_rec.PPIS_CTRY_OLD                                 := :new.PPIS_CTRY_OLD            ;
      new_rec.PPIS_STATE_CD                                 := :new.PPIS_STATE_CD            ;
      new_rec.EXT_ATT_INDC                                  := :new.EXT_ATT_INDC             ;
      new_rec.PPIS_ZIP                                      := :new.PPIS_ZIP                 ;
      new_rec.SCORP_INDC                                    := :new.SCORP_INDC               ;
      new_rec.PPIS_ID                                       := :new.PPIS_ID                  ;
      new_rec.PPIS_ID_TP_CD                                 := :new.PPIS_ID_TP_CD            ;
      new_rec.APPORT_METHOD_CD                              := :new.APPORT_METHOD_CD         ;
      new_rec.INS_CO_INDC                                   := :new.INS_CO_INDC              ;
      new_rec.PER_BEGIN_DT                                  := :new.PER_BEGIN_DT             ;
      new_rec.PER_END_DT                                    := :new.PER_END_DT               ;
      new_rec.FORM_DT                                       := :new.FORM_DT                  ;
      new_rec.FORM_TYPE_ID                                  := :new.FORM_TYPE_ID             ;
      new_rec.NOL_CARRYBACK_CD                              := :new.NOL_CARRYBACK_CD         ;
      new_rec.FARM_COOP_INDC                                := :new.FARM_COOP_INDC           ;
      new_rec.ADD_DT                                        := :new.ADD_DT                   ;
      new_rec.ADD_ID                                        := :new.ADD_ID                   ;
      new_rec.UPD_DT                                        := :new.UPD_DT                   ;
      new_rec.UPD_ID                                        := :new.UPD_ID                   ;
      new_rec.VENDOR_CD                                     := :new.VENDOR_CD                ;
      new_rec.RPTD_HLTHINSASN_CR_AMT                        := :new.RPTD_HLTHINSASN_CR_AMT   ;
      new_rec.CALC_HLTHINSASN_CR_AMT                        := :new.CALC_HLTHINSASN_CR_AMT   ;
      new_rec.RPTD_GIT_FINAL_AMT                            := :new.RPTD_GIT_FINAL_AMT       ;
      new_rec.CALC_GIT_FINAL_AMT                            := :new.CALC_GIT_FINAL_AMT       ;
      new_rec.FISCAL_YR_CD                                  := :new.FISCAL_YR_CD             ;
      new_rec.RPTD_BONUS_DEPR_AMT                           := :new.RPTD_BONUS_DEPR_AMT      ;
      new_rec.CALC_BONUS_DEPR_AMT                           := :new.CALC_BONUS_DEPR_AMT      ;
      new_rec.RPTD_PREV_CRYFWD_AMT                          := :new.RPTD_PREV_CRYFWD_AMT     ;
      new_rec.CALC_PREV_CRYFWD_AMT                          := :new.CALC_PREV_CRYFWD_AMT     ;
      new_rec.RPTD_DOM_PROD_DED_AMT                         := :new.RPTD_DOM_PROD_DED_AMT    ;
      new_rec.CALC_DOM_PROD_DED_AMT                         := :new.CALC_DOM_PROD_DED_AMT    ;
      new_rec.RPTD_XS_IRC_DED_AMT                           := :new.RPTD_XS_IRC_DED_AMT      ;
      new_rec.CALC_XS_IRC_DED_AMT                           := :new.CALC_XS_IRC_DED_AMT      ;
      new_rec.RPTD_COAL_CR_AMT                              := :new.RPTD_COAL_CR_AMT         ;
      new_rec.CALC_COAL_CR_AMT                              := :new.CALC_COAL_CR_AMT         ;
      new_rec.SCHD_M_INDC                                   := :new.SCHD_M_INDC              ;
      new_rec.INTANG_EXP_INDC                               := :new.INTANG_EXP_INDC          ;
      new_rec.RPTD_INTANGEXP_ADJ_AMT                        := :new.RPTD_INTANGEXP_ADJ_AMT   ;
      new_rec.CALC_INTANGEXP_ADJ_AMT                        := :new.CALC_INTANGEXP_ADJ_AMT   ;
      new_rec.AGIT_CONSOL_INDC                              := :new.AGIT_CONSOL_INDC         ;
      new_rec.INCRP_DT                                      := :new.INCRP_DT                 ;
      new_rec.INCRP_STATE_CD                                := :new.INCRP_STATE_CD           ;
      new_rec.COMMERCIAL_ST_CD                              := :new.COMMERCIAL_ST_CD         ;
      new_rec.INIT_IN_RTN_YR                                := :new.INIT_IN_RTN_YR           ;
      new_rec.REC_LOC_ADDR                                  := :new.REC_LOC_ADDR             ;
      new_rec.EST_TAX_OTH_FID_INDC                          := :new.EST_TAX_OTH_FID_INDC     ;
      new_rec.FED_1120_CONSOL_INDC                          := :new.FED_1120_CONSOL_INDC     ;
      new_rec.UNTRY_MTRL_CHG_INDC                           := :new.UNTRY_MTRL_CHG_INDC      ;
      new_rec.FED_ELEC_CONF_NBRV                            := :new.FED_ELEC_CONF_NBRV       ;
      new_rec.RTN_SRC_CD                                    := :new.RTN_SRC_CD               ;
      new_rec.BANKRPT_INDC                                  := :new.BANKRPT_INDC             ;
      new_rec.FIT_FILER_INDC                                := :new.FIT_FILER_INDC           ;
      new_rec.NAME_CHG_INDC                                 := :new.NAME_CHG_INDC            ;
      new_rec.REMIC_INDC                                    := :new.REMIC_INDC               ;
      new_rec.INPUT_SRC_METH_CD                             := :new.INPUT_SRC_METH_CD        ;
      new_rec.ANNULZN_INDC                                  := :new.ANNULZN_INDC             ;
      new_rec.RPTD_REIT_DIV_DED_AMT                         := :new.RPTD_REIT_DIV_DED_AMT    ;
      new_rec.CALC_REIT_DIV_DED_AMT                         := :new.CALC_REIT_DIV_DED_AMT    ;
      new_rec.RPTD_PAT_INCM_AMT                             := :new.RPTD_PAT_INCM_AMT        ;
      new_rec.CALC_PAT_INCM_AMT                             := :new.CALC_PAT_INCM_AMT        ;
      new_rec.RPTD_MDA_PROD_CR_AMT                          := :new.RPTD_MDA_PROD_CR_AMT     ;
      new_rec.CALC_MDA_PROD_CR_AMT                          := :new.CALC_MDA_PROD_CR_AMT     ; 
      IF inserting THEN                                              
        v_change_type := 'INSERT';                                   
      ELSIF updating THEN                                            
        v_change_type := 'UPDATE';                                   
      ELSIF deleting THEN                                            
        v_change_type := 'DELETE';
      END IF;
      --call to do base table insert, update or delete          
        RSDGP004.bus_ta_form_97A(in_event_user      => user,
                                 in_event_source    => v_event_source,
                                 in_change_type     => v_change_type,
                                 in_old_rec         => old_rec,
                                 in_new_rec         => new_rec);
      -- call to build xml for rti_table_audits and queues        --xdbaud
        RSDGP001.bus_ta_form_97A(in_event_user      => user,
                                 in_event_source    => v_event_source,
                                 in_change_type     => v_change_type,
                                 in_old_rec         => old_rec,
                                 in_new_rec         => new_rec);
    END;}
    Edited by: SDL on Feb 17, 2009 4:54 AM
    Edited by: SDL on Feb 17, 2009 5:09 AM
    Edited by: SDL on Feb 17, 2009 5:14 AM

    Here is the insert code that is in the package RSDGP004 that does the insert into the base table for the view.
    I think maybe this is what you meant, when you asked for the code that does the insert?
    {ELSIF in_change_type = 'INSERT' THEN
                levent := 'INSERT';
                INSERT INTO rti_bus_ta_forms(
                                               add_dt         
                                            ,  add_id         
                                            ,  tran_id        
                                            ,  doc_loc_nbr    
                                            ,  field_009_amt  
                                            ,  field_01_txt   
                                            ,  field_010_amt  
                                            ,  field_015_amt  
                                            ,  field_016_amt  
                                            ,  field_02_txt   
                                            ,  field_029_amt  
                                            ,  field_03_txt   
                                            ,  field_030_amt  
                                            ,  field_039_amt  
                                            ,  field_04_txt   
                                            ,  field_040_amt  
                                            ,  field_041_amt  
                                            ,  field_042_amt  
                                            ,  field_05_txt   
                                            ,  field_053_amt  
                                            ,  field_054_amt  
                                            ,  field_06_txt   
                                            ,  field_063_amt  
                                            ,  field_064_amt  
                                            ,  field_067_amt  
                                            ,  field_068_amt  
                                            ,  field_07_txt   
                                            ,  field_079_amt  
                                            ,  field_08_txt   
                                            ,  field_080_amt  
                                            ,  field_085_amt  
                                            ,  field_086_amt  
                                            ,  field_09_txt   
                                            ,  field_091_amt  
                                            ,  field_092_amt  
                                            ,  field_095_amt  
                                            ,  field_096_amt  
                                            ,  field_10_txt   
                                            ,  field_101_amt  
                                            ,  field_102_amt  
                                            ,  field_103_amt  
                                            ,  field_104_amt  
                                            ,  field_105_amt  
                                            ,  field_106_amt  
                                            ,  field_11_txt   
                                            ,  field_111_amt  
                                            ,  field_112_amt  
                                            ,  field_12_txt   
                                            ,  field_125_amt  
                                            ,  field_126_amt  
                                            ,  field_127_amt  
                                            ,  field_128_amt  
                                            ,  field_13_txt   
                                            ,  field_131_amt  
                                            ,  field_132_amt  
                                            ,  field_137_amt  
                                            ,  field_138_amt  
                                            ,  field_139_amt  
                                            ,  field_14_txt   
                                            ,  field_140_amt  
                                            ,  field_141_amt  
                                            ,  field_142_amt  
                                            ,  field_143_amt  
                                            ,  field_144_amt  
                                            ,  field_147_amt  
                                            ,  field_148_amt  
                                            ,  field_149_amt  
                                            ,  field_15_txt   
                                            ,  field_150_amt  
                                            ,  field_151_amt  
                                            ,  field_152_amt  
                                            ,  field_153_amt  
                                            ,  field_154_amt  
                                            ,  field_16_txt   
                                            ,  field_165_amt  
                                            ,  field_166_amt  
                                            ,  field_167_amt  
                                            ,  field_168_amt  
                                            ,  field_169_amt  
                                            ,  field_170_amt  
                                            ,  field_171_amt  
                                            ,  field_172_amt  
                                            ,  field_181_amt  
                                            ,  field_182_amt  
                                            ,  field_175_amt  
                                            ,  field_176_amt  
                                            ,  field_177_amt  
                                            ,  field_178_amt  
                                            ,  field_179_amt  
                                            ,  field_180_amt  
                                            ,  field_193_amt  
                                            ,  field_194_amt  
                                            ,  field_195_amt  
                                            ,  field_196_amt  
                                            ,  field_197_amt  
                                            ,  field_198_amt  
                                            ,  field_199_amt  
                                            ,  per_begin_dt   
                                            ,  per_end_dt     
                                            ,  form_dt        
                                            ,  form_type_id   
                                            ,  field_31_txt   
                                            ,  field_201_amt  
                                            ,  upd_dt         
                                            ,  upd_id         
                                            ,  field_27_txt   
                                            ,  field_006_amt  
                                            ,  field_007_amt  
                                            ,  field_008_amt  
                                            ,  field_005_amt  
                                            ,  field_21_txt   
                                            ,  field_22_txt   
                                            ,  field_23_txt   
                                            ,  field_020_amt  
                                            ,  field_021_amt  
                                            ,  field_022_amt  
                                            ,  field_023_amt  
                                            ,  field_024_amt  
                                            ,  field_025_amt  
                                            ,  field_026_amt  
                                            ,  field_027_amt  
                                            ,  field_028_amt  
                                            ,  field_031_amt  
                                            ,  field_183_amt  
                                            ,  field_184_amt  
                                            ,  field_034_amt  
                                            ,  field_035_amt  
                                            ,  field_036_amt  
                                            ,  field_191_amt  
                                            ,  field_192_amt  
                                            ,  field_188_amt  
                                            ,  field_189_amt  
                                            ,  field_17_txt   
                                            , field_18_txt    
                                            , field_33_txt    
                                            , field_19_txt    
                                            , field_39_txt    
                                            , field_20_txt    
                                            ,  field_185_amt  
                                            ,  field_186_amt  
                                            , field_24_txt   )
                                     VALUES(
                                            in_new_rec.ADD_DT,                       
                                            in_new_rec.ADD_ID,                       
                                            in_new_rec.TRAN_ID,                      
                                            in_new_rec.DOC_LOC_NBR,                  
                                            in_new_rec.RPTD_BAL_DUE_AMT,             
                                            in_new_rec.EXT_ATT_INDC,                 
                                            in_new_rec.CALC_BAL_DUE_AMT,             
                                            in_new_rec.RPTD_REL_TAX_AMT,             
                                            in_new_rec.CALC_REL_TAX_AMT,             
                                            in_new_rec.EXT_FILED_INDC,               
                                            in_new_rec.RPTD_EST_PMT_AMT,             
                                            in_new_rec.PPIS_CTRY_CD,                 
                                            in_new_rec.CALC_EST_PMT_AMT,             
                                            in_new_rec.RPTD_HRAMT_AMT,               
                                            in_new_rec.PPIS_ST_3_ADDR,               
                                            in_new_rec.CALC_HRAMT_AMT,               
                                            in_new_rec.RPTD_CMBTX_AMT,               
                                            in_new_rec.CALC_CMBTX_AMT,               
                                            in_new_rec.INTERNAL_ID,                  
                                            in_new_rec.RPTD_LTOT_AMT,                
                                            in_new_rec.CALC_LTOT_AMT,                
                                            in_new_rec.PPIS_ID,                      
                                            in_new_rec.RPTD_INT_DUE_AMT,             
                                            in_new_rec.CALC_INT_DUE_AMT,             
                                            in_new_rec.RPTD_LATE_PEN_AMT,            
                                            in_new_rec.CALC_LATE_PEN_AMT,            
                                            in_new_rec.PPIS_ID_TP_CD,                
                                            in_new_rec.RPTD_HRNTX_AMT,               
                                            in_new_rec.PPIS_NAME,                    
                                            in_new_rec.CALC_HRNTX_AMT,               
                                            in_new_rec.RPTD_OTH_PMT_AMT,             
                                            in_new_rec.CALC_OTH_PMT_AMT,             
                                            in_new_rec.PPIS_ST_1_ADDR,               
                                            in_new_rec.RPTD_OVERPMT_CRED_AMT,        
                                            in_new_rec.CALC_OVERPMT_CRED_AMT,        
                                            in_new_rec.RPTD_PRIOR_EXT_PMT_AMT,       
                                            in_new_rec.CALC_PRIOR_EXT_PMT_AMT,       
                                            in_new_rec.PPIS_ST_2_ADDR,               
                                            in_new_rec.RPTD_HREPT_AMT,               
                                            in_new_rec.CALC_HREPT_AMT,               
                                            in_new_rec.RPTD_HRSUB_AMT,               
                                            in_new_rec.CALC_HRSUB_AMT,               
                                            in_new_rec.RPTD_REFUND_DUE_AMT,          
                                            in_new_rec.CALC_REFUND_DUE_AMT,          
                                            in_new_rec.PPIS_CTY_ADDR,                
                                            in_new_rec.RPTD_RENT_AMT,                
                                            in_new_rec.CALC_RENT_AMT,                
                                            in_new_rec.PPIS_STATE_CD,                
                                            in_new_rec.RPTD_SU_TAX_AMT,              
                                            in_new_rec.CALC_SU_TAX_AMT,              
                                            in_new_rec.RPTD_HRSJT_AMT,               
                                            in_new_rec.CALC_HRSJT_AMT,               
                                            in_new_rec.PPIS_ZIP,                     
                                            in_new_rec.RPTD_SUPP_NI_TAX1_AMT,        
                                            in_new_rec.CALC_SUPP_NI_TAX1_AMT,        
                                            in_new_rec.RPTD_TAX_DUE_AMT,             
                                            in_new_rec.CALC_TAX_DUE_AMT,             
                                            in_new_rec.RPTD_TOT_DUE_AMT,             
                                            in_new_rec.PPIS_PHN_NMBR,                
                                            in_new_rec.CALC_TOT_DUE_AMT,             
                                            in_new_rec.RPTD_TOT_OVERPMT_AMT,         
                                            in_new_rec.CALC_TOT_OVERPMT_AMT,         
                                            in_new_rec.RPTD_TOT_PMT_AMT,             
                                            in_new_rec.CALC_TOT_PMT_AMT,             
                                            in_new_rec.RPTD_TOT_REL_TAX_AMT,         
                                            in_new_rec.CALC_TOT_REL_TAX_AMT,         
                                            in_new_rec.RPTD_UNDERPMT_PEN_AMT,        
                                            in_new_rec.PPIS_CHK_BOX,                 
                                            in_new_rec.CALC_UNDERPMT_PEN_AMT,        
                                            in_new_rec.RPTD_HTOT_AMT,                
                                            in_new_rec.CALC_HTOT_AMT,                
                                            in_new_rec.RPTD_HRBAL_AMT,               
                                            in_new_rec.CALC_HRBAL_AMT,               
                                            in_new_rec.PPIS_CTRY_OLD,                
                                            in_new_rec.RPTD_LRNTX_AMT,               
                                            in_new_rec.CALC_LRNTX_AMT,               
                                            in_new_rec.RPTD_LRBAL_AMT,               
                                            in_new_rec.CALC_LRBAL_AMT,               
                                            in_new_rec.RPTD_LREPT_AMT,               
                                            in_new_rec.CALC_LREPT_AMT,               
                                            in_new_rec.RPTD_LRSUB_AMT,               
                                            in_new_rec.CALC_LRSUB_AMT,               
                                            in_new_rec.RPTD_LRSJT_AMT,               
                                            in_new_rec.CALC_LRSJT_AMT,               
                                            in_new_rec.RPTD_LRAMT_AMT,               
                                            in_new_rec.CALC_LRAMT_AMT,               
                                            in_new_rec.RPTD_AGI_TAX_AMT,             
                                            in_new_rec.CALC_AGI_TAX_AMT,             
                                            in_new_rec.RPTD_TOT_UNREL_TAX_AMT,       
                                            in_new_rec.CALC_TOT_UNREL_TAX_AMT,       
                                            in_new_rec.RPTD_GI_TAX_AMT,              
                                            in_new_rec.CALC_GI_TAX_AMT,              
                                            in_new_rec.RPTD_TAX_DUE2_AMT,            
                                            in_new_rec.CALC_TAX_DUE2_AMT,            
                                            in_new_rec.RPTD_TOT_URL_AMT,             
                                            in_new_rec.CALC_TOT_URL_AMT,             
                                            in_new_rec.REMIT_AMT,                    
                                            in_new_rec.PER_BEGIN_DT,                 
                                            in_new_rec.PER_END_DT,                   
                                            in_new_rec.FORM_DT,                      
                                            in_new_rec.FORM_TYPE_ID,                 
                                            in_new_rec.NOL_CARRYBACK_CD,             
                                            in_new_rec.CALC_IN_NOL_AMT,              
                                            in_new_rec.UPD_DT,
                                            in_new_rec.UPD_ID,               
                                            in_new_rec.VENDOR_CD,                    
                                            in_new_rec.RPTD_PREV_CRYFWD_AMT,         
                                            in_new_rec.CALC_PREV_CRYFWD_AMT,         
                                            in_new_rec.RPTD_TOT_CRED_AMT,            
                                            in_new_rec.CALC_TOT_CRED_AMT,            
                                            in_new_rec.FISCAL_YR_CD,                 
                                            in_new_rec.INIT_RET_INDC,                
                                            in_new_rec.FINAL_RET_INDC,               
                                            in_new_rec.RPTD_FED_INCM_AMT,            
                                            in_new_rec.CALC_FED_INCM_AMT,            
                                            in_new_rec.RPTD_BONUS_DEPR_AMT,          
                                            in_new_rec.CALC_BONUS_DEPR_AMT,          
                                            in_new_rec.RPTD_SPF_DEDUCT_AMT,          
                                            in_new_rec.CALC_SPF_DEDUCT_AMT,          
                                            in_new_rec.RPTD_GOVT_INT_AMT,            
                                            in_new_rec.CALC_GOVT_INT_AMT,            
                                            in_new_rec.RPTD_URL_SUBTOT_AMT,          
                                            in_new_rec.CALC_URL_SUBTOT_AMT,          
                                            in_new_rec.RPTD_APPORT_PCNT,             
                                            in_new_rec.CALC_APPORT_PCNT,             
                                            in_new_rec.RPTD_IN_INCM_AMT,             
                                            in_new_rec.CALC_IN_INCM_AMT,             
                                            in_new_rec.RPTD_IN_NOL_AMT,              
                                            in_new_rec.RPTD_TOT_URL_INCM_AMT,        
                                            in_new_rec.CALC_TOT_URL_INCM_AMT,        
                                            in_new_rec.RPTD_TOT_MOD_AMT,             
                                            in_new_rec.CALC_TOT_MOD_AMT,             
                                            in_new_rec.SCHD_M_INDC,                  
                                            in_new_rec.FED_ELEC_CONF_NBRV,           
                                            in_new_rec.RTN_SRC_CD,                   
                                            in_new_rec.BANKRPT_INDC,                 
                                            in_new_rec.NAME_CHG_INDC,                
                                            in_new_rec.INPUT_SRC_METH_CD,            
                                            in_new_rec.RPTD_PAT_INCM_AMT,            
                                            in_new_rec.CALC_PAT_INCM_AMT,            
                                            in_new_rec.ANNULZN_INDC) ;}

  • Returning Clause out parameter not working

    I have Oracle 11g (I think?) and VS2010.
    I am using an insert statement with the returning clause to return an identity value that is created by a Sequence/Trigger. The problem I am having is that it is not updating the out parameter in C#. Here's some sample code. I have tested the insert statement in SQL Developer and it works. The C# statement does do the insert, but the out parameter remains null. I have tried ParameterDirection as ReturnValue, InputOutput, and Output. None of those worked. The output value remains null no matter what I try to do. I even lifted this example (Oracle Sequences), ran it, and it also errored and is not returning out parameters. (Error Msg: Unable to cast object of type 'Oracle.DataAccess.Types.OracleDecimal' to type 'System.IConvertible'.Couldn't store <null> in ID Column.  Expected type is Int32.).
    I have searched and searched the web over and I cannot figure out why this does not work. Any help would be most appreciated!!
    MyTable
    MyTable_ID  Number (38)
    Note            Varchar2 (500 byte)
    =================================================
                    try
                        if (insertCmd.Connection.State == ConnectionState.Closed)
                            insertCmd.Connection.Open();
                        int recs = insertCmd.ExecuteNonQuery();
                        this.Id = Convert.ToInt32(insertCmd.Parameters[":Id"].Value);
                    catch (Exception err) {  }
                    finally {  insertCmd.Connection.Close(); }
    private OracleCommand insertCmd
                get
                    OracleCommand insCmd = Context.DataBaseConnection.CreateCommand();
                    insCmd.CommandText = string.Format(
                        @"Insert into MyTable (Note)
                          Values (:Note)
                          Returning MyTable_ID into :Id");
                    insCmd.Parameters.Clear();
                    OracleParameter noteParam = new OracleParameter(":Note", OracleDbType.Varchar2, Note, ParameterDirection.Input);
                    OracleParameter idParam = new OracleParameter(":Id", OracleDbType.Int32, 38, "Calibration_Session_Id");
                    idParam.Direction = ParameterDirection.Output;
                    insCmd.Parameters.Add(idParam);
                    insCmd.Parameters.Add(noteParam);
                    insCmd.BindByName = true;
                    return insCmd;

    Okay, I changed my insert command text to this...
    insCmd.CommandText = string.Format(
                        @"Begin
                             Insert into MyTable (Note)
                             Values (:Note)
                             Returning MyTable_ID into :Id;
                             Commit; End;");
    There was no change. Am I doing an explicit transaction wrong?

  • What is the role of the RETURN clause in a pipelined function?

    I wrote several pipelined functions and they work just fine without the return clause. However in the oracle's documentation there are returns in the pipelined functions:
    CREATE FUNCTION StockPivot(p refcur_pkg.refcur_t) RETURN TickerTypeSet
    PIPELINED IS
      out_rec TickerType := TickerType(NULL,NULL,NULL);
      in_rec p%ROWTYPE;
    BEGIN
      LOOP
        FETCH p INTO in_rec;
        EXIT WHEN p%NOTFOUND;
        -- first row
        out_rec.ticker := in_rec.Ticker;
        out_rec.PriceType := 'O';
        out_rec.price := in_rec.OpenPrice;
        PIPE ROW(out_rec);
        -- second row
        out_rec.PriceType := 'C';  
        out_rec.Price := in_rec.ClosePrice;
        PIPE ROW(out_rec);
      END LOOP;
      CLOSE p;
      RETURN;
    END;
    /http://docs.oracle.com/cd/E11882_01/appdev.112/e10765/pipe_paral_tbl.htm#CHDJEGHC
    Moreover, at least in PL/SQL developer I recieve hints that my pipelined functions return no values, though as I said the functions work smoothly. So is there a need in the return clause in pipelined functions or it is redundant?
    My oracle version is 11.2.0.2.0

    As already mentioned, in later versions of the database it doesn't appear to be necessary, however, it IS good programming practice (and necessary in non-pipelined functions) to always ensure a function has a RETURN statement in it. It could be a 'side effect' (read that as bug if you like) that it doesn't appear to be necessary, so you would be best to ensure you DO include a RETURN statement, as documented.

  • RETURNING clause with WHERE

    Hi friends,
    Is there any way to restrict the values fetched using RETURNING caluse after an UPDATE?
    For example, the following RETURNING caluse will fetch the new SALs of the DEPTs 10 and 20:
    UPDATE EMP
    SET SAL = SAL+100
    WHERE DEPT IN (10,20)
    RETURNING SAL BULK COLLECT INTO ARRAY_NEW_SAL;
    Is it possible to fetch the new SALs of only DEPT 10? Anything like:
    UPDATE EMP
    SET SAL = SAL+100
    WHERE DEPT IN (10,20)
    RETURNING SAL BULK COLLECT INTO ARRAY_NEW_SAL WHERE DEPT = 10;
    Edited by: 964559 on 30-May-2013 03:41

    No, you can't.
    The returning clause is used to return data from all the effected rows of the update. It's a part of PL/SQL, not SQL, so you cannot apply an SQL WHERE clause to it.
    The RETURNING clause and the way you can use it are detailed in the documentation (what a surprise!)...
    http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/returninginto_clause.htm#LNPLS01354

  • May returning Clause be used w/ INSERT INTO...SELECT FROM

    Hi,
    I use Oracle 8i: 8.1.7.2.0.
    I'd like to insert multiple rows into a table, and get back certain inserted columns into a collection variable. Is this possible?
    Eg:
    INSERT INTO foo
    f1
    , f2
    SELECT b1, b2...
    FROM bar
    RETURNING f1 bulk collect into collection
    This compiles, but yields a "command not properly ended" error at runtime--I assume because the "returning" binds to the SELECT subquery, and not to the main INSERT query.
    Is there a way to do this?
    By the way, I already know this works when INSERTing just 1 row via the "values" clause.
    Regards,
    --IG                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hi,
    Try this way:
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
    Connected as hr
    SQL>
    SQL> SET SERVEROUTPUT ON
    SQL> DECLARE
      2     TYPE emp_t IS TABLE OF VARCHAR2(30);
      3     emp_list emp_t;
      4 
      5     TYPE emp_t2 IS TABLE OF NUMBER;
      6     emp_code emp_t2;
      7  BEGIN
      8 
      9     emp_list := emp_t('John',
    10                       'Doe',
    11                       'Max');
    12 
    13     FORALL i IN emp_list.FIRST .. emp_list.LAST
    14        INSERT INTO emp
    15           (id,
    16            NAME)
    17        VALUES
    18           (employees_seq.NEXTVAL,
    19            emp_list(i))
    20        RETURNING id BULK COLLECT INTO emp_code;
    21 
    22     FOR i IN emp_code.FIRST .. emp_code.LAST LOOP
    23        dbms_output.put_line(emp_code(i));
    24     END LOOP;
    25  END;
    26  /
    213
    214
    215
    PL/SQL procedure successfully completed
    SQL> commit;
    Commit complete
    SQL> select * from emp;
            ID NAME
           213 John
           214 Doe
           215 Max
    SQL>Regards,
    Edited by: Walter Fernández on May 8, 2009 12:59 PM -- Adding query on emp table...

  • A different RETURN clause in FUNCTION

    I am using Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production.
    Hi Techie's,
    I am having a table called DEV and trying to fetch all the records from a column called no from the same table. I know that i can do with the help of SYS_REFCURSOR. But I just tried to do something different here. When i compiled the function, it got created. But when i tried to execute, it throws some error.
    I dont know what happens here between compilation and execution. Can someone give me some ideas? can we make this function to work? Correct me if i am understanding wrong.
    CREATE OR REPLACE FUNCTION s_fn
    RETURN dev%ROWTYPE
    IS
       l_d   dev%ROWTYPE;
    BEGIN
       SELECT * INTO l_d  FROM   dev;
       RETURN l_d;
    END;
    SELECT s_fn FROM DUALThanks
    Ram

    Your function is only expecting a single row to be returned from the SELECT statement, so if there's more than one row you'll get an error.
    You need a pipeline function with a loop to achieve what you want. e.g.
    SQL> CREATE OR REPLACE TYPE num_descript AS OBJECT(num number, descript varchar2(30))
      2  /
    Type created.
    SQL>
    SQL> CREATE OR REPLACE TYPE tbl_num_descript AS TABLE OF num_descript
      2  /
    Type created.
    SQL>
    SQL>
    SQL> CREATE OR REPLACE PACKAGE reftest AS
      2    FUNCTION pipedata(p_choice number) RETURN tbl_num_descript PIPELINED;
      3  END;
      4  /
    Package created.
    SQL>
    SQL> CREATE OR REPLACE PACKAGE BODY reftest AS
      2    FUNCTION pipedata(p_choice number) RETURN tbl_num_descript PIPELINED IS
      3      v_obj num_descript := num_descript(NULL,NULL);
      4      v_rc  sys_refcursor;
      5    BEGIN
      6      IF p_choice = 1 THEN
      7        OPEN v_rc FOR SELECT empno as num, ename as descript FROM emp;
      8      ELSIF p_choice = 2 THEN
      9        OPEN v_rc FOR SELECT deptno as num, dname as descript FROM dept;
    10      END IF;
    11      LOOP
    12        FETCH v_rc INTO v_obj.num, v_obj.descript;
    13        EXIT WHEN v_rc%NOTFOUND;
    14        PIPE ROW(v_obj);
    15      END LOOP;
    16      CLOSE v_rc;
    17      RETURN;
    18    END;
    19  END;
    20  /
    Package body created.
    SQL> select * from table(reftest.pipedata(1));
           NUM DESCRIPT
          7369 SMITH
          7499 ALLEN
          7521 WARD
          7566 JONES
          7654 MARTIN
          7698 BLAKE
          7782 CLARK
          7788 SCOTT
          7839 KING
          7844 TURNER
          7876 ADAMS
          7900 JAMES
          7902 FORD
          7934 MILLER
    14 rows selected.
    SQL> select * from table(reftest.pipedata(2));
           NUM DESCRIPT
            10 ACCOUNTING
            20 RESEARCH
            30 SALES
            40 OPERATIONS
    SQL>

  • How to use JDBC to access "returning " clause

    I think it is important to note here that you DO NOT have to use SQLJ for this. You can achieve the same result in plain JDBC. You must put the PL/SQL block in a CallableStatement object.
    e.g.
    CallableStatement cs = conn.prepareCall("declare myReturnValue table_name.field_name%type; begin insert into table_name (field1, field2, ... fieldn) values (?, ?, ... ?) returning fieldx into ?; end;");
    To get hold of the "returning" parameter, register it as an OUT parameter (method 'registerOutParameter').
    That should do it!! Email me if you need further explanation,
    regards,
    Alex

    I think it is important to note here that you DO NOT have to use SQLJ for this. You can achieve the same result in plain JDBC. You must put the PL/SQL block in a CallableStatement object.
    e.g.
    CallableStatement cs = conn.prepareCall("declare myReturnValue table_name.field_name%type; begin insert into table_name (field1, field2, ... fieldn) values (?, ?, ... ?) returning fieldx into ?; end;");
    To get hold of the "returning" parameter, register it as an OUT parameter (method 'registerOutParameter').
    That should do it!! Email me if you need further explanation,
    regards,
    Alex
    null

  • Is it possible to get the before-change-values in UPDATE-RETURNING-clause ?

    I want to do an UPDATE, which affects many comlumns and for some columns I wan`t to know if they had really changed.
    For this I want to use the RETRUNING-clause of UPDATE. But it seems I can only get the values after the update , not before the update. ( like :old.foo in row-level-triggers ) Is there any solution ?

    If you want to know if a value changed, you can use:
    if :old.column = :new.column then ....

Maybe you are looking for

  • ALV-Grid:  Is it possible to catch "LOCAL Function Codes" in any Event ??

    Hi, is it possible that i can catch a "Local Function Code" in ALV Grid with an Event?? For example if you click to an Grid Button on the toolbar than it must call an Event! ..........BUTTON: Local APPEND (existing in ALV Toolbar) Function Code: '&LO

  • Problem with linking to reports in Web Intelligence XiR2

    Hi, I'm having trouble doing even a basic (direct) link to a sub report or a report. These are my tries: (webserver name) http://corpwebapps:8080/businessobjects/enterprise115/desktoplaunch/opendoc/openDocument.jsp?&sDocName=KPI_Dashboard_Legenda&sWi

  • Do I need an Mobile Me account?

    So this might be a stupid question...sorry in advance. But, I have Mobile Me know but I am looking at not renewing my account...times are tough. But do I need it for my iWeb? I have published my website to a Go Daddy account, forwarded from or to the

  • Trouble getting iPod touch to show new version of iTunes when I connect to iMac

    When I connect our ipod touch, itunes message pulls up and says it cannot be used because it requires iTunes version 10.5 or later and to go to itunes to download.  I have done that and restarted all devices, but it still brings that message up every

  • Management port on CSS 11150

    I have a simple question. Can someone tell me how to access the management port on the css 11150? I configured the ip and mask on the management port and condigured my laptop for a ip on the same network. But i am unable to connect.