How to refer to a field in an array of type object

I have an array that is passed to a Stored Proc.
This array is a table of abc_object.
type abc_object has 4 fields/elements. Example fld1, fld2,fld3 and fld4.
I pass the array to a stored procedure. Inside the stored procedure, how can i refer to fld3?

SQL> create or replace type abc_object as object
          fld1 varchar2 (10),
          fld2 varchar2 (10),
          fld3 varchar2 (10),
          fld4 varchar2 (10)
Createtype successfully completed.
SQL> create or replace type abc_object_tab as table of abc_object
Createtype successfully completed.
SQL> create or replace procedure p (p_abc_object_tab abc_object_tab)
as
begin
     for i in 1 .. p_abc_object_tab.count
     loop
          dbms_output.put_line (p_abc_object_tab (i).fld3);
     end loop;
end p;
Createprocedure successfully completed.
SQL> exec p(abc_object_tab(abc_object('fld1_1','fld2_15','fld3_1','fld4_1'),abc_object('fld1_2','fld2_2','fld3_2','fld4_2')))
fld3_1
fld3_2
PL/SQL procedure successfully completed.

Similar Messages

  • How to refer a particular filed of a Table data type

    DECLARE
              CURSOR C1 IS SELECT
                                       GLUSR_USR.GLUSR_USR_ID BYER_ID,
                                       GLUSR_USR.GLUSR_USR_ADD1 BUYER_ADD
              FROM
                   GLUSR_USR
              WHERE
                   ROWNUM<=5;
    TYPE TBL_TYPE IS TABLE OF C1%ROWTYPE;
    TBL TBL_TYPE;
    BEGIN
         OPEN C1;
         FETCH C1 BULK COLLECT INTO TBL;
         CLOSE C1;
         FORALL I IN 1..TBL.COUNT
         INSERT INTO SATYA_TEMP VALUES(TBL.BYER_ID,TBL.BUYER_ADD);(How to use a particular field of TBL in this case).
         --INSERT INTO SATYA_TEMP VALUES TBL(I); (I know this)
    END;
    My question is how to refer a particular field of table type..?
    Please suggest.

    Then you have to create a record type and give all the columns inside it as given below.
    Then you can create a variable for this type and use it
    Type IS RECORD OF
    columnname1 table_name.column_name1%type,
    columnname2 table_name.column_name2%type,
    columnname3 table_name.column_name3%type,
    OR Use
    rec table%ROWTYPE;
    Edited by: Geek vishal on Aug 4, 2011 12:54 PM

  • How can i find  out field for a particular component type

    hi,
    how can i find out for particular component name is belongs to this field.....that means REF_DOC_NO componemt is belongs to xblnr field ..../.if we know only component type ...how to find the field...
    plz tell me
    thanks&regards,
    kalyan

    keep the cursor on component
    press F1
    select technical information
    you will find the field name and table or structure name
    regards
    sateesh

  • How to activate  NCM code Field on STO PO(doc type:UB) for Brazil

    Dear Gurus,
    I,m working on STO PO-Doc type UB for Brazil.On PO item level on the Tab Page Brazil one field should be there with name NCM CODE.That field is disppeared for this doc type UB.For all the other doc types that field is visible.
    I have checked the settings related to UB and the field NCM codeScreen field:MEPO1326-J_1BNBM
    is mandatory.
    Can u kindly inform me how to make the field visible?
    Regards
    Kumar

    .

  • How to refer to element in multi-dimensional array?

    What do I need to change in the following dbms_output statement to display "Ken" and avoid the error?
    Thanks,
    -Ken
    create or replace type kja_person_name_rec as object
    ( pena_id number(10)
    , pers_id number(10)
    , pnty_cd varchar2(10)
    , first_nm varchar2(100)
    , family_nm varchar2(100)
    Type created
    create or replace type kja_person_name_tbl as table of kja_person_name_rec not null;
    Type created
    create or replace type kja_person_rec as object
    ( pers_id number(10)
    , birth_dt date
    , person_names kja_person_name_tbl
    Type created
    create or replace type kja_person_tbl as table of kja_person_rec not null;
    Type created
    declare
      l_person_name  kja_person_name_rec;
      l_person_names kja_person_name_tbl;
      l_person       kja_person_rec;
      l_persons      kja_person_tbl;
    begin
      l_person_name  := kja_person_name_rec( 1, 1, 'LEGAL', 'Ken', 'Anderson');
      l_person_names := kja_person_name_tbl( l_person_name);
      l_person       := kja_person_rec( 1, to_date( '1955-SEP-22', 'YYYY-MON-DD'), l_person_names);
      l_persons      := kja_person_tbl( l_person);
      dbms_output.put_line( 'l_persons(1).first_nm = '|| l_persons(1).person_names.first_nm);
    end;
    declare
      l_person_name  kja_person_name_rec;
      l_person_names kja_person_name_tbl;
      l_person       kja_person_rec;
      l_persons      kja_person_tbl;
    begin
      l_person_name  := kja_person_name_rec( 1, 1, 'LEGAL', 'Ken', 'Anderson');
      l_person_names := kja_person_name_tbl( l_person_name);
      l_person       := kja_person_rec( 1, to_date( '1955-SEP-22', 'YYYY-MON-DD'), l_person_names);
      l_persons      := kja_person_tbl( l_person);
      dbms_output.put_line( 'l_persons(1).first_nm = '|| l_persons(1).person_names.first_nm);
    end;
    ORA-06550: line 13, column 80:
    PLS-00302: component 'FIRST_NM' must be declared
    ORA-06550: line 13, column 3:
    PL/SQL: Statement ignored
    SQL>

    Hi,
    Ken Anderson wrote:
    What do I need to change in the following dbms_output statement to display "Ken" and avoid the error?
    Thanks,
    -Ken
    create or replace type kja_person_name_rec as object
    ( pena_id number(10)
    , pers_id number(10)
    , pnty_cd varchar2(10)
    , first_nm varchar2(100)
    , family_nm varchar2(100)
    Type created
    create or replace type kja_person_name_tbl as table of kja_person_name_rec not null;
    Type created
    create or replace type kja_person_rec as object
    ( pers_id number(10)
    , birth_dt date
    , person_names kja_person_name_tbl
    Type created
    create or replace type kja_person_tbl as table of kja_person_rec not null;
    Type created
    declare
    l_person_name  kja_person_name_rec;
    l_person_names kja_person_name_tbl;
    l_person       kja_person_rec;
    l_persons      kja_person_tbl;
    begin
    l_person_name  := kja_person_name_rec( 1, 1, 'LEGAL', 'Ken', 'Anderson');
    l_person_names := kja_person_name_tbl( l_person_name);
    l_person       := kja_person_rec( 1, to_date( '1955-SEP-22', 'YYYY-MON-DD'), l_person_names);
    l_persons      := kja_person_tbl( l_person);
    dbms_output.put_line( 'l_persons(1).first_nm = '|| l_persons(1).person_names.first_nm);
    end;
    declare
    l_person_name  kja_person_name_rec;
    l_person_names kja_person_name_tbl;
    l_person       kja_person_rec;
    l_persons      kja_person_tbl;
    begin
    l_person_name  := kja_person_name_rec( 1, 1, 'LEGAL', 'Ken', 'Anderson');
    l_person_names := kja_person_name_tbl( l_person_name);
    l_person       := kja_person_rec( 1, to_date( '1955-SEP-22', 'YYYY-MON-DD'), l_person_names);
    l_persons      := kja_person_tbl( l_person);
    dbms_output.put_line( 'l_persons(1).first_nm = '|| l_persons(1).person_names.first_nm);
    end;
    ORA-06550: line 13, column 80:
    PLS-00302: component 'FIRST_NM' must be declared
    ORA-06550: line 13, column 3:
    PL/SQL: Statement ignored
    SQL>
    L_persons(1).person_names is a kja_person_name_tbl. Kja_person_name_tbls don't have first_nms; only kja_person_name_recs do.
    Next to the end, instead of
       dbms_output.put_line( 'l_persons(1).first_nm = '|| l_persons(1).person_names.first_nm);try
    dbms_output.put_line( 'l_persons(1).first_nm = '|| l_persons(1).person_names(1).first_nm);
    --                                                                   added  ^^^

  • How to use array or type in "IN" criteria

    Hi all,
    anybody knows how to use group of same datatype data ( array or type ) in SQL statement
    For example
    ls_dept[1] = 'abc';
    ls_dept[2] = 'xyz';
    ls_dept[10] = 'ppr';
    i want to use this group of data in "IN" criteria like
    Select * from department where dept in ('abc','xyz'.....''ppr');
    if anybody know how to use please reply me as soon as possible.
    Thanks,

    I hope you are not suggesting concatenating literals from a web front-end application ;) Is it not what he was saying.. he is getting user input info from an application.. if the user sends multiple values.. he has to build a string with concatenating literals..
    correct me if I am wrong.

  • How to refer field of DataSource in transfer rule for DSO object  in BI 7.0

    hello Gurus,
    I am new to BI 7.
    pls tellme how to refer field of DataSource in transfer rule for DSO object.
    I will assign points to proper answer.
    Praveen.

    hi praveen,
    when u create the transformation for the DSO, it asks for the source. in that you enter your datasource, then you get the datasource fields on one side and the rules in the middle and the DSO objects on the other side. whichever field of DataSource you want to refer in tranformation rule, just connect that field to the rule for the required object of the DSO.
    hope this will help you.
    regards
    vaibhav

  • How to refer the fields of a nested structure

    Hi friends,
    I am facing problem in assigning value to nested structure fields.
    I have import parameter in FM which  is a Table type and line type (structure).
    in this structure there are 4 fields.
    Out of these 4 fields 1 is again a table type and line type(structure).
    I need to populate this inner structures fields and then assign the values back to main table type.
    e.g import parameter is zinput_detail type zdetail.
    zdetail is a table type and has zdetail_line as structure.
    zdetail_line fields are
    salesorder
    customer
    date
    weight is a field here and has table type as type i.e zweights.
    again zweights has a line type zweight_line.
    fields of zweight_line are
    weight1
    weight2.
    Now i need to populate weight1 and weight 2 and then assign these values back to main field weight.
    Kindly let me know, what to declare  for referring to the inner structure this and how to access this.
    Regards,
    pradeep

    Hi,
    Declare the seperate varible for the inner structure and fill the values in the newly declared struture and assign back to inner structure.
    Example
    DATA i_zdetail type zdetail with header line.
    DATA i_weight type z_weight with header llne.
    Fill the i_weight with required values and then
    i_zdetails-weight[] = i_weight[].
    Edited by: Avinash Kodarapu on Mar 10, 2009 8:59 PM

  • How to refer report items?

    Hi,
    How to refer the report items?
    I have standard sql report region contains 3 columns.
    doc_id,doc_name and No_units.all three items are apex item.
    below is my sql query for report.
    APEX_ITEM.SELECT_LIST_FROM_QUERY(17,doc_id,'select s_id from         
    sales')"doc id",
    apex_item.text(18, doc_name) "doc name",
    apex_item.text(19,  No_units) " No units",null
    from sale_docMy intention is to fire a dynamic action when event change in doc_id. So in when tab what i have to assign in item(s) fields for doc_id. i gave *#doc_id#* in items(s) field it doesnt work.
    how to resolve this?

    any help?

  • How to create a new field for Q3 - QM notification in Header and item level

    Dear All,
    l
               Sub: How to create a new field for Q3 - QM notification in Header and item level
    Ref. the link --> Quality Notification
    We want to create a new field in header level and item level.
    As per the thread the solution is given below.
    In the IMG Config: Quality Management -> Quality Notification -> Notification Types -> Define screen areas for notification types Then Choose 'Define screen areas' Then Click on 'New entries' button Now, select the relevant Notification Type and click in 'Enter'. Select the 'Iten Cases' register and remember to setup the Tabstrip Header, Icon, etc. Set the 'Tabstrip active' flag. Then Save.
    Quality Notification -> Notification Types -> Define screen areas for notification types
    WE ARE UNABLE TO FIND IN CUSTOMIZATION PATH --> DEFINE SCREEN AREAS FOR NOTIFICATION TYPES.
    Please help.
    Question No. 2 :
    THE REQUIREMENT IS GIVEN BELOW.
    We want to hide the field in Q3 - QM Notification
    In header --> Reference tab --> Item (sub heading) --> "DEFECT LOCATION" FIELD TO BE ELIMINATED (HIDE)
    Ref the link --> Quality notification
    The solutiion is given below.
    Hi Sami,
    We can hide the collumns using the Transaction OQM1 and Program Name SAPLIQS0.
    Lets say Defect location need to be hidden, the field TXTCDOT need to have the radio button HIDE.
    Hope this will suffice your requirement.
    Kindly ask me if you need any other details.
    Thanks & Regards,
    Srinivas.D
    Hi Sami,
    We can hide the collumns using the Transaction OQM1 and Program Name SAPLIQS0.
    Lets say Defect location need to be hidden, the field TXTCDOT need to have the radio button HIDE.
    Hope this will suffice your requirement.
    Kindly ask me if you need any other details.
    Thanks & Regards,
    Srinivas.D
    By double clicking the "DEFECTIVE QUANTITY (EXTERNAL), WE COULD NOT GET --> field TXTCDOT .
    Plese do the needful.
    We are using ECC6.0 Ehp3 and Ehp4.
    With Best Regards,
    Raghu Sharma

    Dear Pushpa,
    Transaction Code :SHD0 is working fine.
    Please accept my sincere thanks for your sharing your Knowledge.
    I am able to fulfill my
    Regarding the enhancement, I have not tried.
    Once I will complete, I will award the fulll marks to you.
    With Best Regards,
    Raghu Sharma

  • How to add a new field in MM01, with say contaminent  as a field?

    How to add a new field in MM01, with say contaminent  as a field? I process that i know is i has to go the user exit and check out the three user exits that are available for MM01 after that what i have to do please can any one help me out with the procedure to proceed?

    Hai      venkateshwar reddy ,
    try with these user exits
    MGA00001 Material Master (Industry): Checks and Enhancements
    MGA00002 Material Master (Industry): Number Assignment
    MGA00003 Material Master (Industry and Retail): Number Display
    Refer these steps also
    http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/screen-exit-on-mm01-mm02-mm03-322717#

  • How to insert check box fields in a htmlb: tableview

    Hi,
    Can anybody tell me how to insert check box fields in a htmlb: tableview in a sequence of rows in a table view. How to generate the sequence no for the checkbox inorder to know the row that is checked.
    Thanks in advance,
    Aruna.

    Here is the code which has the custom "Checkbox" in the tableview & Triggers the event. <b>You can identify the checkbox based on cell ID (p_cell_id)</b> in the method "IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START" & Based on the event name + Cell ID. Look at the code & let me know if you any issue.
    <b>Layout:</b>
    <%@page language="abap" %>
    <%@extension name="htmlb" prefix="htmlb" %>
    <htmlb:content id               = "content"
                   design           = "design2002+design2003"
                   controlRendering = "SAP"
                   rtlAutoSwitch    = "true"
                   forceEncode      = "ENABLED" >
      <htmlb:page title="Test " >
        <htmlb:form>
          <%
      data TV_ITERATOR Type Ref To zcl_itr.
      data iterator type ref to IF_HTMLB_TABLEVIEW_ITERATOR.
      create object tv_iterator exporting appl_cons = application.
      iterator = tv_iterator.
          %>
          <htmlb:tableView id              = "fligts"
                           headerText      = "Flight"
                           width           = "100"
                           headerVisible   = "true"
                           design          = "alternating"
                           visibleRowCount = "10"
                           fillUpEmptyRows = "true"
                           showNoMatchText = "true"
                           filter          = "server"
                           sort            = "server"
                           onHeaderClick   = "MyEventHeaderClick"
                           table           = "<%= APPLICATION->itab %>"
                           iterator        = "<%= ITERATOR %>" />
        </htmlb:form>
      </htmlb:page>
    </htmlb:content>
    <b>Event Handling:</b>
    DATA: EVENT_ID1 TYPE REF TO IF_HTMLB_DATA.
    EVENT_ID1 = CL_HTMLB_MANAGER=>GET_EVENT_EX( REQUEST ).
    CASE EVENT_ID1->EVENT_SERVER_NAME.
    IF NOT event_id1 IS INITIAL.
       if event_id1->server_event+0(9) = 'chkevent'.
      SPLIT event_id1->server_event AT '-' INTO v_event v_dummy v_row v_col.
      endif.
    endif.
    method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS.
         CLEAR p_column_definitions.
        CLEAR p_overwrites.
        DATA: tv_column  TYPE TABLEVIEWCONTROL.
        tv_column-COLUMNNAME  = 'FLDATE'.
        tv_column-edit        = 'X'.
        tv_column-sort        = 'X'.
        tv_column-TITLE               = 'Flight Date'.
        tv_column-WIDTH  = '100'.
        APPEND tv_column TO p_column_definitions.
        CLEAR tv_column.
        tv_column-edit        = 'X'.
        tv_column-COLUMNNAME          = 'CONNID'.
        tv_column-TITLE               = 'Conn.ID'.
        tv_column-WIDTH  = '70'.
        tv_column-HORIZONTALALIGNMENT = 'center'.
        APPEND tv_column TO p_column_definitions.
        CLEAR tv_column.
        tv_column-edit        = 'X'.
        tv_column-COLUMNNAME          = 'CHECKBOX1'.
        tv_column-TITLE               = 'Check Box'.
        tv_column-WIDTH  = '30'.
        tv_column-HORIZONTALALIGNMENT = 'center'.
        APPEND tv_column TO p_column_definitions.
    endmethod.
    METHOD IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START.
           DATA: L_EVENT TYPE STRING.
      CASE P_TABLEVIEW_ID.
        WHEN 'fligts'.
          CASE P_COLUMN_KEY.
            WHEN 'CHECKBOX1'.
    *          CONCATENATE 'chk_event' '123' '2323' INTO L_EVENT SEPARATED BY '-' .
    CONCATENATE 'chkevent' p_cell_id INTO l_event SEPARATED BY '-'.
              P_REPLACEMENT_BEE = CL_HTMLB_CHECKBOX=>FACTORY( ID = P_CELL_ID
            ONCLICK = L_EVENT CHECKED = 'false' ).
          ENDCASE.
      ENDCASE.
    ENDMETHOD.
    Hope this will solve your problem.
    <b><i>* Reward each helpful answer.</i></b>
    Raja T
    Message was edited by:
            Raja T

  • How do I change a field in the sum in ALV (List or grid)

    My alv, for example:
    1.10
    2.30
    1.50
    Sum(DO_SUM) : 4.90
    But I need to CEIL( 4.90 ) before showing .
    It should be shown as 5.00 in alv.
    How do I change this field in the sum ?

    Use the following code in a PBO module or in an adequate event method
    data: total type ref to data,
          subtotal1 type ref to data.
    field-symbols: <total> like gt_sflight,
                   <subtotal1> like gt_sflight.
    call method grid1->get_subtotals
      importing
        ep_collect00 = total
        ep_collect01 = subtotal1.
    assign total->* to <total>.
    assign subtotal1->* to <subtotal1>.
    Look at [ALV Grid Control (BC-SRV-ALE)|http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf]
    Regards

  • In BSP how to give the input field as mandatory?

    Hi friends,
    In BSP how to give the input field as mandatory?
    In BSP i want to validate the input field (example checking the material no is valid or not)
    if this material no doesnot exit means i want to pass error message.What is the code for that.
    Moosa

    hi
    try this
    in LAYOUT
    <htmlb:inputField id = "vname"  disabled = "False" value = "<%= v_visitor %>"/> <font color="red" size="2"><b><%= page->messages->assert_message( 'vname' ) %></b></font></td>
    in DO_HANDLE_EVENT
    in oninputprocessing
    CLASS CL_HTMLB_MANAGER DEFINITION LOAD.
    IF event_id = CL_HTMLB_MANAGER=>EVENT_ID.
      DATA: event TYPE REF TO CL_HTMLB_EVENT.
      event = CL_HTMLB_MANAGER=>get_event( runtime->server->request ).
      IF event->name = 'button' AND event->event_type = 'click'.
        DATA: button_event TYPE REF TO CL_HTMLB_EVENT_BUTTON.
        button_event ?= event.
      ENDIF.
        case event->id.
            when 'select'.
               if v_visitor = ''.
                 page->messages->add_message(
                 condition = 'vname'
                 message   = 'Visitor Name can not be blank'
                 severity  = page->messages->CO_SEVERITY_ERROR ).
              ELSE.
                    here u can write ur when ur field getting filled
            endif.
         endcase.
    endif.
    give marks if it is helpful
    thanks

  • How to add one more field to an exist internal table

    hi abapers
    i am a very new abap programmer and just started learning it.
    i want to know How to add one more field to an exist internal table.
    lemme me put my question in a very simple way.
    i have a internal table having fields f1,f2,f3 and which also that internal also contains some data.
    now i want to add two more fields (mm & nn) to that internal table now.
    how can i do that.
    and i wanna know the websites names where i can find some brain teasing questions in abap programming.
    eagerly waiting for ur reply
    regards,
    Maqsood A Khan

    Hi, MAQSOOD.
    You can insert more fields in your internal table like this.
    refer this code snippet.
    DATA : BEGIN OF tbl_itab OCCURS 0.
            INCLUDE STRUCTURE zsdtc009.
    DATA :  vkorg   LIKE vbak-vkorg,  "inserted one
            vtweg   LIKE vbak-vtweg,  "inserted one
            vkbur   LIKE vbak-vkbur,  "inserted one
            vkgrp   LIKE vbak-vkgrp,  "inserted one
           END OF tbl_itab.
    you can also read the book "Teach yourself abap in 21 days"
    at http://cma.zdnet.com/book/abap/
    but that book is just about basic concept of abap and report program.
    it doesn't give a lecture for on-line program.
    you can get pdf version books(about abap, sap...things) from sap.
    http://help.sap.com/printdocu/core/Print46c/en/Data/htm/english.htm
    I wish I could help you.
    Regards
    Kyung Woo.

Maybe you are looking for