How to pass the NEW row from a trigger to a procedure

I want to pass all NEW values from a trigger to a procedure.
I wish to use a %ROWTYPE or similar,
and I want neither to assigne them nor pass them one by one.
Any suggestion?
Thanks in advance

hi vittorio
i have a solution but im very sure it is not exact answer to your question . it will definitely help you .
create table temp_type as select * from emp where 1 = 2;
create or replace procedure emp_ins(emp_row emp%rowtype) as
pragma autonomous_transaction;
begin
insert into temp_type(empno,ename) values(emp_row.empno,emp_row.ename);
commit;
end;
create or replace trigger emp_ins_trig before insert on emp for each row
declare
/*  empr emp_types.emprowtype%type;*/
empr emp%rowtype;
begin
  empr.empno := :new.empno;
  empr.ename := :new.ename;
emp_ins(empr);
end;
/unfortunately , in oracle we dont have a facility to access the members of a record or recordset by their position
Such facility is very much there in Visual Basic , similar programming tools.
we can access the members of a recordset by the index position ( here index means the position of the field)

Similar Messages

  • Can you please how to retrive the new netprice from the new validity period

    Hi,
    When you display  a contract using ME33K and you click on  a item and view its conditions(shift+F6), there might be 2 validity periods for a given item.
    and each period will have different netprice in it.
    One will be old date before the PO was created and the other new one which has validity till 31.12.999..We want to fetch the netprice for the new validity date but currently the program is fetching this data from the table EKPO which is having the netprice of the old date only..
    Can you please how to retrive the new netprice from the new validity period

    Thank you so much.
    But I need more help specific to my problem.
    Let me describe the same.
    Suppose the PO creation date is 04.07.2007
    The conditions for an item in a contract for the PO are as follows;
    1. Validity from 04.07.2007 validity to 04.07.2007 Netprice = 100.00
    2. Validity from 05.07.2007 validity to 31.12.9999 Netprice = 200.00
    We need to always fetch the netprice from the validity period which always matches with the PO creatio date. here the value 100.00 should be the correct netpr as the PO creation date matches with the first validity period.
    But the program is fetching the netprice 200.000 which belongs to the second validity period. That is beacuse the select statement which fetches the data for contracts collects on the basis of EKKO-kdate and ekko-kdtab.the fields kdate and kdtab retrieves the validity period of the contract which is from 04.07.2007 to 31.072007. This data is then used to retrieve the netpr data from EKPO and it fetched 200.00 as it retrives the netprice of current data in contract validity and h not with respect to PO creation date.
    This data is then used to fetch the get the netpr data from EKPO.
    <u>what we need is the netprice for that validity period of item(Conditions) that matches with the PO creation date</u>..
    Below is the code where I'm selecting the data from ekko and ekpo for the contracts data..Can you please add the code snippet to the below attachesd subroutine to get the required data from KONV and KONP so that we can retrieve the correct Netprice.
    FORM select_contracts USING p_s_cebeln LIKE s_cebeln[]
                                p_c_k_bstyp  TYPE ebstyp
                                p_p_bukrs    TYPE bukrs
                                p_p_ekorg    TYPE ekorg
                                p_p_ekgrp    TYPE bkgrp
    *Begin of Mod-004
                                fp_p_cernam   type ty_r_ernam
                               p_p_cernam   TYPE ernam
    *End of Mod-004
                                p_s_werks    LIKE s_werks[]
                                p_s_matnr    LIKE s_matnr[]
                                p_s_lifnr    LIKE s_lifnr[]
                                p_s_val_dt   LIKE s_val_dt[].
    *mod-002
        data : l_amount   type BAPICURR_D,   " Net price
               l_waers    TYPE waers,        " Currency Key
               l_eff_amount type BAPICURR_D. " Effective value
          data: l_v_netpr type bprei.
    *mod-002
    SELECT  ebeln
              bukrs
              bstyp
              aedat
              ernam
              lifnr
              zterm
              ekorg
              ekgrp
              waers
              wkurs
              <b>kdatb
              kdate</b>
              inco1
              INTO TABLE i_ekko
              FROM ekko
              WHERE    ebeln IN p_s_cebeln
                   AND bstyp EQ p_c_k_bstyp
                   AND bukrs EQ p_p_bukrs
                   AND ekorg EQ p_p_ekorg
                   AND ekgrp EQ p_p_ekgrp
    *Begin of Mod-004
                  AND ernam EQ p_p_cernam
                   AND ernam IN fp_p_cernam
    *End of Mod-004
                   AND lifnr IN p_s_lifnr
                   AND ( kdatb IN p_s_val_dt OR kdate IN p_s_val_dt ).
      IF sy-subrc EQ 0.
    Populates internal table i_ekpo using EKPO table.
        SELECT   ebeln
                 ebelp
                 loekz
                 txz01
                 matnr
                 werks
                 ktmng
                 menge
                 meins
                 bprme
                 netpr
                 peinh
                 webaz
                 mwskz
                 uebto
                 untto
                 erekz
                 pstyp
                 knttp
                 repos
                 webre
                 konnr
                 ktpnr
                 ean11
                 effwr
                 xersy
                 aedat
                 prdat
                   INTO TABLE i_ekpo
                   FROM ekpo
                   FOR ALL ENTRIES IN i_ekko
                   WHERE ebeln = i_ekko-ebeln
                     and aedat = i_ekko-aedat
                     AND werks IN p_s_werks
                     AND matnr IN p_s_matnr.
    LOOP AT i_ekpo INTO rec_ekpo.
          MOVE rec_ekpo-ebeln  TO rec_contr-ebeln.
          MOVE rec_ekpo-ebelp  TO rec_contr-ebelp.
          MOVE rec_ekpo-loekz  TO rec_contr-loekz.
          MOVE rec_ekpo-txz01  TO rec_contr-txz01.
          MOVE rec_ekpo-matnr  TO rec_contr-matnr.
          MOVE rec_ekpo-werks  TO rec_contr-werks.
          MOVE rec_ekpo-ktmng  TO rec_contr-ktmng.
          MOVE rec_ekpo-menge  TO rec_contr-menge.
          MOVE rec_ekpo-meins  TO rec_contr-meins.
          MOVE rec_ekpo-bprme  TO rec_contr-bprme.
         MOVE rec_ekpo-netpr  TO rec_contr-netpr.
         move l_v_netpr        TO rec_contr-netpr.
    mod-002
          read table i_ekko into rec_ekko with key
                           ebeln = rec_ekpo-ebeln.
            l_waers =  rec_ekko-waers.
    CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_EXTERNAL'
      EXPORTING
        currency              =  l_waers
        amount_internal       =  rec_contr-netpr
    IMPORTING
       AMOUNT_EXTERNAL       =  l_amount.
                rec_contr-netpr = l_amount.
    mod-002
          MOVE rec_ekpo-peinh  TO rec_contr-peinh.
          MOVE rec_ekpo-webaz  TO rec_contr-webaz.
          MOVE rec_ekpo-mwskz  TO rec_contr-mwskz.
          MOVE rec_ekpo-uebto  TO rec_contr-uebto.
          MOVE rec_ekpo-untto  TO rec_contr-untto.
          MOVE rec_ekpo-erekz  TO rec_contr-erekz.
          MOVE rec_ekpo-pstyp  TO rec_contr-pstyp.
          MOVE rec_ekpo-knttp  TO rec_contr-knttp.
          MOVE rec_ekpo-repos  TO rec_contr-repos.
          MOVE rec_ekpo-webre  TO rec_contr-webre.
          MOVE rec_ekpo-konnr  TO rec_contr-konnr.
          MOVE rec_ekpo-ktpnr  TO rec_contr-ktpnr.
          MOVE rec_ekpo-ean11  TO rec_contr-ean11.
          MOVE rec_ekpo-effwr  TO rec_contr-effwr.
    mod-002
          CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_EXTERNAL'
       EXPORTING
          currency              =  l_waers
          amount_internal       =  rec_contr-effwr
       IMPORTING
          AMOUNT_EXTERNAL       =  l_eff_amount.
               rec_contr-effwr = l_eff_amount.
    *mod-002
          MOVE rec_ekpo-xersy  TO rec_contr-xersy.
          APPEND rec_contr TO i_contr.
          CLEAR: rec_ekpo,rec_contr.
    mod-002
          CLEAR : rec_ekko,l_amount, l_eff_amount,l_waers.
    mod-002
        ENDLOOP.
    Modifying i_contr using i_ekko.
        SORT i_ekko BY ebeln.
        LOOP AT i_contr INTO rec_contr.
          READ TABLE i_ekko INTO rec_ekko WITH KEY
                              ebeln = rec_contr-ebeln
                              BINARY SEARCH.
          MOVE rec_ekko-bukrs  TO  rec_contr-bukrs.
          MOVE rec_ekko-bstyp  TO  rec_contr-bstyp.
          MOVE rec_ekko-aedat  TO  rec_contr-aedat.
          MOVE rec_ekko-ernam  TO  rec_contr-ernam.
          MOVE rec_ekko-lifnr  TO  rec_contr-lifnr.
          MOVE rec_ekko-zterm  TO  rec_contr-zterm.
          MOVE rec_ekko-ekorg  TO  rec_contr-ekorg.
          MOVE rec_ekko-ekgrp  TO  rec_contr-ekgrp.
          MOVE rec_ekko-waers  TO  rec_contr-waers.
          MOVE rec_ekko-wkurs  TO  rec_contr-wkurs.
          MOVE rec_ekko-kdatb  TO  rec_contr-kdatb.
          MOVE rec_ekko-kdate  TO  rec_contr-kdate.
          MOVE rec_ekko-inco1  TO  rec_contr-inco1.
          MODIFY i_contr FROM rec_contr.
        ENDLOOP.
      ENDIF.
      REFRESH: i_ekko,
               i_ekpo.
      CLEAR  : rec_ekko,
               rec_ekpo,
               rec_contr.
    ENDFORM.      "select_contracts
    Thanks.

  • How to delete the committed row from a table from its VOImpl class ??

    I am new to ADF and I have problem to solve. To perform roll back I am using fetching key before roll back and setting it after undo operation, so that I can stay back in the currently selected row. But in my case I am using application model commit for one LOV attribute selection in the row. So when ever I am performing roll back operation after inserting a row, the values other than this committed LOV attribute gets roll backed, but I need remove the entire row from table. Does there any option to remove a row based on the attribute values of a row from VO's row implementation or from bean class in a performance optimized way ?
    Thanks in advance..........

    http://java.sun.com/javase/6/docs/api/javax/swing/table/DefaultTableModel.html#removeRow(int)
    Why did you mark it answered but gave no dukes to finalight? That's not how it works.
    You should mark his answer as correct and give him at least one duke, for the effort!

  • Master Child tables how to get the latest rows from both

    Hi,
    Need some help with the sql. I have two tables Master & Child. In my Master table I have multiple rows for the same record and in the child table also multiple rows for the same master row how can I get the latest one's from both.
    For example Data in my Master table looks like
    CONT_ID                  SEQ_NUM        DESCRIPTION
    1                         189             Update 2
    1                         188             Update 1
    1                         187              NewNow in the child table for the same CONT_ID I may have the following rows
    CONT_ID                   UPDATED_DATE                                     STATUS
    1                        3/16/2010 2:19:01.552700 PM                          P
    1                        3/16/2010 12:29:01.552700 PM                         A
    1                        3/16/2010 12:29:01.552700 PM                         P
    1                        3/16/2010 12:19:01.552700 PM                         NIn my final query how can I get the row with seq_num 189 as it's the latest in Master table and from child table the row with status of P as it's the latest one based on the time. Here is the query i have but it returns the latest row from the child table only and basically repeats the master table rows as opposed to one row that is latest from both:
    Thanks

    Hi,
    You can use the analytic ROW_NUMKBER function to find the latest row for each cont_id in each table:
    WITH     got_m_rnum     AS
         SELECT     cont_id,     seq_num,     description
         ,     ROW_NUMBER () OVER ( PARTITION BY  cont_id
                                   ORDER BY          seq_num     DESC
                           ) AS m_rnum
         FROM    master_table
    --     WHERE     ...     -- any filtering goes here
    ,     got_c_rnum     AS
         SELECT     cont_id, updated_date,     status
         ,     ROW_NUMBER () OVER ( PARTITION BY  cont_id
                                   ORDER BY          updated_date     DESC
                           ) AS c_rnum
         FROM    child_table
    --     WHERE     ...     -- any filtering goes here
    SELECT     m.cont_id,     m.seq_num,     m.description
    ,     c.updated_date,     c.status
    FROM     got_m_rnum     m
    JOIN     got_c_rnum     c     ON     m.cont_id     = c.cont_id
                        AND     m.m_rnum     = c.c_rnum
                        AND     m.m_rnum     = 1
    ;If you'd like to post CREATE TABLE and INSERT statements for the sample data, then I could test this.
    If there happens to be a tie for the latest row (say, there are only two rows in the child_table with a certain cont_id, and both have exactly the same updated_date), then this query will arbitrarily choose one of them as the latest.

  • How to pass the selected Pernr from Portal to WDA iview dynamically ?

    Hi ,
    How we can pass the selected Pernr from portal page to the webdynpro application dynamically?
    Ex:
    If a manager select a employee id of an employee then it should display all the related document regarding the employee in the ivew.
    For that we need to pass the employee id(Pernr) to the iview.How it is possible.
    Thanks,
    Deepika

    Hi Deepika,
    Try using portal events. You will have to register and handle the required portal event in your WDA application.
    [Portal Events Help|http://help.sap.com/saphelp_nw70/helpdata/EN/03/0048413e466e24e10000000a155106/frameset.htm]
    In this link, navigate to Integration->portal integration->Portal Events.
    Also go through some sample applications:
    WDR_TEST_PORTAL_EVENT
    Regards,
    Reema.

  • How to return the entire row from a table

    Hi guys,
    Tabl A
    FirstName varchar2(10),
    Age Number,
    Add varchar2(100),
    Table B
    Filedname varchar2(200), -- contains all the fields of table A
    Datatype varchar2(100), -- Contains the datatypes of the filedname
    Length Number -- contains the length of the fileds
    Now how can i return the entire row from table A with the datatype and its length.
    Any help would be appreciated ?
    Here is the query I wrote but it how to take the datatype and its length..
    create or replace procedure disp_table_data
    as
    type r_cursor is REF CURSOR;
    c_A r_cursor;
    er A%rowtype;
    begin
    open c_A for select * from A;
    loop
    fetch c_A into er;
    exit when c_A%notfound;
    dbms_output.put_line(er.FirstName||'--'||er.Age);
    end loop;
    close c_A;
    END;
    /

    Guys,
    I want column value from table A and its corresponding data_type and length from table B. I think I cant do it through joins.
    Any idea would be appreciated ?.
    Example ..
    Tabl A
    FirstName varchar2(10),
    Age Number,
    Add varchar2(100)
    insert into A values('John',24,'Boston');
    Table B
    Filedname varchar2(200), -- contains all the fields of table A
    Datatype varchar2(100), -- Contains the datatypes of the filedname
    Length Number -- contains the length of the fileds
    insert into B values('FirstName','varchar2',10); -- this is coming from table A.
    Output should be like this...
    John,Varchar2,10
    Here (John is the FirstName - coming from table A, Varchar2 is a Datatype and 10 is the Length which are coming from table B ). Only column values are coming from table A , corresponding datatype and length are coming from B.
    Any idea would be appreciated ?
    Thanks.

  • How to save the  selected rows from Advance table into database

    Hi
    I have requirement like..
    In custom page , Manager Search the Candidates and selects the candidate ROWS from advance table.
    The reqt is how to save the selected multiple rows into the database.

    hi Reetesh,
    In Custom page
    Supoose the Recruiter Search is for Position Finance Mangager , it retrieves 100 rows , out of which Recruiter select 10 rows .
    So in Such scenario how to save this 10 rows against Recruiter
    , i mean , Is i need to create custom table, to save Recruiter , these selected 10 rows.
    I hope u understand my question

  • How to remove the news-pushing from china GMW

    I live in china, i download the newest version of skype app from Skype.gmw.cn. when i loged in , i received the news pushing from gmw. I hated that. So, i went to google play store and install the new version com.skype.raider on my phone. Still received the news pushing. How can i do to remove the news pushing .

    Try a vacuum, otherwise it will certainly require disassembly to attempt to remove it from the jack.
    ****Please click on Accept As Solution if a suggestion solves your problem. It helps others facing the same problem to find a solution easily****
    2015 Microsoft MVP - Windows Experience Consumer

  • How to insert the new row after current row in RowIterator - Steve Muench

    Hi,
    Our client wants the new row to be added after current row on the front end instead of before current row.
    we were using "new JUActionBinding(this,iterBinding,JUActionBinding.ACTION_CREATE_INSERT_ROW);" this code inserts the new row after current row.
    I tried a lot to insert the new row after current row. Used new JUActionBinding(this,iterBinding,JUActionBinding.ACTION_LAST to move the cursor to last row in rowiterator and the used .ACTION_CREATE_INSERT_ROW but this thing inserts the new row as the second last row.
    Could somebody plesae help ?
    Message was edited by:
    user556161

    I am using JDeveloper 9.0.4.2.0 (Build 1459)

  • How to pass out multiple rows from EJB method?

    I need a sample for passing multiple rows from a EJB query method
    (using SQLJ). All I found in existing sample code is query on a
    single row and pass out as a bean class e.g Emp class with some
    getXX() method.
    What I'm currently doing is to convert the Iterator to a Vector
    and pass the Vector out, which means I've to code a bean class,
    use a Vector and later use a Enumeration to read the result. Is
    there a simpler way to receive multiple rows from EJB?
    In EJB:
    while ( empIter.next() ) {
    EmpVect.addElement( new Emp( emps.empNo(), emps.eName(),
    emps.job(), emps.deptNo()) );
    return EmpVect;
    In client:
    Vector empVect = empEJB.getEmployees(123);
    Enumeration employees = empVect.elements();
    while ( employees.hasMoreElements() ) {
    emp = ( Emp ) employees.nextElement();
    System.out.println(" " + emp.getEName());

    Hi Ankit,
    There is a workarround that requires some excel work.
    Here you need to follow the above mentioned steps along with this you need an additional combo box (wont be displayed at runtime, it will fetch the entire data if we select blank for the first combo box).
    Now suppose we are using 2 combobox C1 and C2 and our data is from B3 to F6.
    Now for C1 (one we are using for selection)
    1. select the labels as Sheet1!$B$2:$B$6 (a blank cell is added for all selection)
    2. Insertion type as filtered Rows
    3. Take source data as Sheet1!$B$2:$F$6 (includeing one blank row)
    4. selected Items as none
    5. for C2 labels as Sheet1!$A$3:$A$6 source data as Sheet1!$B$3:$F$6 destination as Sheet1!$B$14:$F$17.
    6. Selected Item : Sheet1!$B$9  (blank  Type dynamic). So it will select the entire table, if nothing is selected.
    7. take a Grid component and map it to Sheet1!$H$9:$L$12. use formula as =IF(IF($B$9="",B14,B9)=0,"",IF($B$9="",B14,B9)) on cell H9. Where we take H6 to L12 as final data set. Tis will become the data for next set fo Combo box for further selection.
    8. follow the same steps for other combobox selections.
    9. control the dynamic visibility of grids on the basis of Destination cell (like B9).
    Revert if you need further clarification.
    Regards,
    Debjit

  • How to create the new row with existing values

    Hi all,
    first of all i create a row,
    i opened that in edit mode,
    suppose i want to edit any one of the value in that recordd,
    that time compulsory create a new row with those valuess.
    how can i create a new row with those valuess.

    Hi Anusha,
    This code correct for your requirement, only thing is you are not able to modify it as per your requirement.
    What you have to do is:
    1. Copy queried row into into new row, change primary key values(but don't commit your changes here).
    2. Now you have two rows in your VO(OLD as well as New)
    3. Make any changes if you want using User Interface.
    4. At the save button first compare OLD and NEW row, if any value is differing then commit the chnages(it will insert new row in corresponding database table), if no changes are there I mean to say OLD value and NEW rows are same then rollback(it will remove copied row from VO and no row will be inserted in database.)
    While comparing rows please note that Primary keys will not be same so don't compare Primary keys while comparing rows.
    I hope it will help you.
    Regards,
    Reetesh Sharma

  • How to pass the primary key from a report to multiple forms

    I am trying to build an application that tracks a person's training records. I have a report and 3 forms (all tabbed). From the report I can click the edit link to modify a person. Is there a way I can pass the primary key of the person (from the report) to the other forms? Hope what I'm trying to do is clear.
    Thanks.

    Hi,
    You can specify items from other pages also.
    Did you use that popup to pick item ?
    Did you noticed that it filter by page where your link point. You can remove filter from popup and then select other items.
    Or just manually type your item names
    Br, Jari
    Edited by: jarola on Nov 11, 2009 1:08 AM

  • How to Insert the New Row in the  Workbook (b/w the Records)

    Hi All,
    In my workbook, I have 10 records.
    So my requirement is after 5 Records I want to Insert a New Row( ex: Total(1st Column) : SUM (2nd Column)of first five records )
    And remaining records should display the same after inserted row.
    For that what i did, Inserted a new row and put the sum for the first five records and save the workbook.
    Problem is when I refresh the workbook, The inserted row is disappearing.
    Please let me know can we do the aboue requirment or not?
    Regards
    Josu

    Hello joji,
    Please check this thread for changing working book template...
    check the last post by Bhanu..
    Re: Web Template creation .

  • How to put the new developed Requirement into an output type procedure...

    Hi,
    If we developed an new Requirement for an output type, how to put this new requirement number into the output type procedure???
    for example: RV61B912
    The requirement number is 912.
    Thanks

    any helps?
    Thanks

  • How to get the latest row from my Logical Table Source?

    Hi everyone,
    I have a SALARY_HISTORY table that holds the Salary Date and the Salary Amount for an employee, as a simple example. In my Business Model, I want to have a Display Folder called "Current Salary" and use the Where Clause restriction to derive the latest salary for each of my employees.
    In standard SQL Plus, I used a nested SQL statement, e.g. "where a.SalaryDate = (select max(b.SalaryDate) from SALARY_HISTORY b where b.employeeid = a.employeeid)".
    Is there anyway in the "Where Clause" filter of the LTS to derive this type of a query?
    I have tried things like "DB".""."SCHEMA"."AL_SALARY_HISTORY"."SalaryDate" = EVALUATE('SELECT_PHYSICAL MAX(SALARY_DATE) FROM "DB".."SCHEMA"."AL_SALARY_HISTORY" WHERE employeeid = %1)', "DB".""."SCHEMA"."AL_SALARY_HISTORY"."employeeid"). And I know I can't use any of the analytic functions in a where clause.
    So how do I go about this other than creating a View in the database or creating a function in the database to give me the maximum salary date for my employee?
    Thanks
    Paul

    Hi Paul,
    You could achieve this requirement using a sub query. Briefly, the steps are
    1. Just create one report with max(salary_date) for each employee.
    2. Create another report with SALARY_DATE included.
    3. Create a filter (Based on another analysis) on this report, as employee is in(Employee of report in step1) AND SALARY_DATE IS IN(SALARY_DATE of report in step1)(this is the max_salary_date for him)
    You could notice that BI Server would send two queries to the backend for this info.
    Hope this helps.
    Thank you,
    Dhar

Maybe you are looking for

  • !!VERY IMPORTANT - STOLEN PHONE - EVIDENCE REDCOVERY!!!!

    As hard as this scenario is going to be hard for most to believe, I attest that the facts you are about to read are completely true! On 03-10-09 I was unjustly brutalized by police officials in my city.  I had the Blackberry Voice Recorder running, r

  • Authorization object impact

    Hi, I have got an infocube(IC) and multicube based on IC (MC). The authorization object for IC and MC are A & B. A report on MC has got B as authorization object. Now does the object 'A' has got any impact on report. As on now its saying that indequa

  • Extracting Attribute set CRM  to BW

    Hi All, Need some information i.e For creating a target groups in Campaign management we have four data sources i.e Att set,Infocube,Elm. I read some document for creating a target group using Infocube, In doucment they mention using transaction code

  • File Structure into Document?

    I was wondering if anybody might know of a way to export a file structure - and the files included - into a text document, either in Word or Pages, or maybe better yet Excel. I have a huge list of media files that are subfoldered and organized, and I

  • HELP! Opening INTEL MacPro project file on G5 Quad  " General Error " ??

    Im desparate ! I need to online an edit to digibeta on a quad G5 - problem is the offline edit was done on a MAC pro Intel & the capture scratch is on an ext lacie. When I open up the same project file on the G5 quad - im getting " GENRAL ERROR " ??