Displaying value of Object type

Hi All,
I have created one type as Object and I am trying to display the values available in object type for debugging purpose. Please assist me to display the contents of object type.
Thanks in Advance.
Regards,
Venkatesh S

vivekan wrote:
I have created one type as Object and I am trying to display the values available in object type for debugging purpose. Please assist me to display the contents of object type.You can do this statically or dynamically.
The static approach would be to add a DebugDump() method to the object type class - and code this method to display a "debug dump" (via DBMS_OUTPUT for example) of the current instantiated object. Of course, should the class change (new attributes added for example), this DebugDump() method has to be updated.
The dynamic method is more flexible - but requires a copy of the object to be created for the dynamic code to use and "dump".
As the static method is pretty straightforward, I'm only providing a basic example of the dynamic method.
// create a function that generates a PL/SQL anonymous code block that accepts the
// object to dump as bind variable and the display the object's attributes
SQL> create or replace function GenerateDumpCode( typeName varchar2 ) return varchar2 is
  2          LF_INDENT       constant varchar2(10) default chr(10)||chr(9);
  3          LF              constant varchar2(10) default chr(10);
  4          type TAttrList is table of user_type_attrs.attr_name%Type;
  5          type TAttrTypeList is table of user_type_attrs.attr_type_name%Type;
  6          attrName        TAttrList;
  7          attrType        TAttrTypeList;
  8          plCode          varchar2(32767);
  9  begin
10          select
11                  a.attr_name, a.attr_type_name
12                          bulk collect into
13                  attrName, attrType
14          from    user_type_attrs a
15          where   a.type_name = typeName
16          order by
17                  a.attr_no;
18 
19          plCode :=
20  'declare
21          obj '||typeName||';
22 
23          procedure W( line varchar2 ) is
24          begin
25                  DBMS_OUTPUT.put_line( line );
26          end;
27  begin
28          obj := :var1;
29  ';
30 
31          for i in 1..attrName.Count loop
32                  plCode := plCode ||LF_INDENT|| 'W( ''Attribute '||attrName(i)||'=''||';
33                  case attrType(i)
34                          when 'NUMBER' then plCode := plCode || 'to_char(obj.'||attrName(i)||') );';
35                          when 'INTEGER' then plCode := plCode || 'to_char(obj.'||attrName(i)||') );';
36                          when 'VARCHAR2' then plCode := plCode || 'obj.'||attrName(i)||' );';
37                          when 'DATE' then plCode := plCode || 'to_date(obj.'||attrName(i)||',''yyyy/mm/dd hh24:mi:ss'') );';
38                  else
39                          plCode := plCode || '''data type '||attrType(i)||': value not displayed.'');';
40 
41                  end case;
42          end loop;
43 
44          plCode := plCode ||LF|| 'end;';
45 
46          return( plCode );
47  end;
48  /
Function created.
// we need a sample object type/class for, so here's a basic one
SQL> create or replace type TFunkyFoo is object(
  2          day             date,
  3          empID           integer,
  4          empName         varchar2(20),
  5          contract        clob
  6  );
  7  /
Type created.
// the dynamic code block that the function will generate looks as follows:
SQL> select GenerateDumpCode( 'TFUNKYFOO' ) as PLSQL_CODE from dual;
PLSQL_CODE
declare
        obj TFUNKYFOO;
        procedure W( line varchar2 ) is
        begin
                DBMS_OUTPUT.put_line( line );
        end;
begin
        obj := :var1;
        W( 'Attribute DAY='||to_date(obj.DAY,'yyyy/mm/dd hh24:mi:ss') );
        W( 'Attribute EMPID='||to_char(obj.EMPID) );
        W( 'Attribute EMPNAME='||obj.EMPNAME );
        W( 'Attribute CONTRACT='||'data type CLOB: value not displayed.');
end;
// using the function to dynamically display an object's attributes
SQL> declare
  2          foo TFunkyFoo;
  3  begin
  4          foo := new TFunkyFoo( sysdate, 100, 'John Smith', null );
  5          execute immediate
  6                  GenerateDumpCode( 'TFUNKYFOO' )
  7          using   foo;
  8  end;
  9  /
Attribute DAY=2012-08-30 14:48:35
Attribute EMPID=100
Attribute EMPNAME=John Smith
Attribute CONTRACT=data type CLOB: value not displayed.
PL/SQL procedure successfully completed.
SQL>

Similar Messages

  • Passing Values to Object Type Attributes

    Hi Experts,
    I need to pass values to object type attributes amount,channel and company code from zprogram.
    I have got FM 'SWO_INVOKE'.But in this FM how will I pass values to 3 attributes.
    I have created object type through SWO1 .Is it necessary to call FM SWO_CREATE before FM 'SWO_INVOKE'.
    Please suggest.
    Regards,
    Kaustubh.

    Hi,
    I guess you will have to Initialize business object first by using the function module "SWO_CREATE' and then call the other function module to pass the attributes. I am not sure, but please check by passing the attribute name and value to the tables parameter 'CONTAINER'.
    CONTAINER-ELEMENT = <Attribute name>.
    CONTAINER-VALUE = <value from the Zprogram>.
    Hope this will help.
    Thanks,
    Samson

  • Assign value to Object type variable

    CREATE OR REPLACE TYPE emp AS OBJECT (
    empid NUMBER,
    age NUMBER,
    dob date);
    CREATE OR REPLACE TYPE emp _tab AS TABLE OF emp;
    Pls hlep me assign value to the object type variable in loop..(assume there is 5 10 records in emp table)
    declare
    v_emp_tt emp _tab ;
    begin
    for i in (select empid ,age ,dob from emp ) Loop
    v_emp_tt := i.empid; --this is wrong pls help me correct it.
    end loop;
    end;
    thanks,

    I would keep the type/object naming convention distinct from the table name.
    In terms of assignment:
    CREATE OR REPLACE TYPE to_emp AS OBJECT
    (empid NUMBER,
    age NUMBER,
    dob date);
    CREATE OR REPLACE TYPE tt_emp AS TABLE OF emp;
    declare
    v_emp tt_emp;
    begin
    select to_emp_obj(emp_id, age, dob)
    bulk collect into v_emp
    from emp;
    end;

  • I have the requirment, i have to display the equipment object type.

    Hi,
    i have to display data from the following fields, the equipment object type(EQUI_EQART), materil numb(EQUI-MATNR),asset number(EQUI-ANLNR),  placement date(AFKO-GLTRP),
    QMEL-VBELN, VBAP-NEPR, IHPA-PARNR, KNA1-NAME1, KNA1-STRAS, KNA1-KATR6,
    KNVP-PARVW, KNVV-VKBUR,
    JCDS-STAT.
    how can i map the field(GLTRP) from AFKO  with other tables.
    Kindly send me as soon as possible.

    Hi:
    Declare 2 variables in page attribute like tdate/ydate type d
    in intilization
    assign like
    tdate = sy-datum
    ydate = sy-datum-1.
    in page attribute like
          <tr><td>
          <htmlb:label for       = "ip_doj"
                       labelType = "MEDIUM"
                       text      = "Current Date (DD.MM.YYYY)" />
          </td>
                                  <td>
          <htmlb:inputField id         = "tdate"
                            required   = "TRUE"
                            doValidate = "TRUE"
                            type       = "DATE"
                            showHelp   = "TRUE"
                            size       = "10"
                            maxlength  = "10" />
          </td></tr>
          <tr><td>
          <htmlb:label for       = "ip_doj"
                       labelType = "MEDIUM"
                       text      = "Yesterday Date (DD.MM.YYYY)" />
          </td>
                                  <td>
          <htmlb:inputField id         = "ydate"
                            required   = "TRUE"
                            doValidate = "TRUE"
                            type       = "DATE"
                            showHelp   = "TRUE"
                            size       = "10"
                            maxlength  = "10" />
          </td></tr>
    Regards
    Shashi

  • SELECT VALUES FROM OBJECT TYPES

    Hi
    I want to select values in a object types in a table over the database link.
    like
    select name from [email protected]
    where name is of type varray of varchar2(100)
    and db.com is database link.
    It is giving me error ORA-22804.
    Oracle supports this or not?

    SQL> var a refcursor
    SQL> declare
      2   bb emp%ROWTYPE;
      3  begin
      4   select * into bb from emp where rownum = 1;
      5   open :a for select bb.ename ename, bb.empno empno from dual;
      6  end;
      7  /
    PL/SQL procedure successfully completed.
    SQL> print a
    ENAME                                 EMPNO
    SMITH                                  7369Rgds.

  • How to pass conventional table values in object types Dynamically

    Hi All,
    Need urgent help...
    TYPE add_ty is object
    (add1     varchar2(50),
    add2     varchar2(50),
    add2     varchar2(50))
    type add_ty_obj is table of add_ty;
    create table company_dtl
    (cmpid          number(10),
    cmpname          varchar2(100),
    address          add_ty_obj);
    table company_dtl contains demo data as below:-
    cmpid cmpname address
    C101     abc     UK,
              USA,
              AUS
    c102     xyz     UK,
              CN,
              GER
    If I want to read data from table and pass data to object add_ty_obj,
    So How can I do it dynamically. I am willing to create procedure
    which can read data from above table and pass that to mentioned object in
    OUT parameter.
    Out parameter contains same object type somewhere in middleware.
    Please help or advice.
    Thanks in Advance..

    Hi
    i have tried to make procedure that take company id as input and give their address as output.I think it might be useful for you. Or if you want something different
    please write us with more detail.
    CREATE OR REPLACE PROCEDURE READ_DATA_PROC( VAR_CMPID IN NUMBER , VAR_TYP OUT ADD_TY_OBJ)
    AS
    BEGIN
    SELECT ADDRESS INTO VAR_TYP FROM COMPANY_DTL WHERE CMPID = V_CMPID ;
    END READ_DATA_PROC;
    here i'm also adding your table and type definition i've used
    CREATE TYPE ADD_TY IS OBJECT
    (ADD1 VARCHAR2(50),
    ADD2 VARCHAR2(50),
    ADD3 VARCHAR2(50));
    CREATE TYPE ADD_TY_OBJ AS TABLE OF ADD_TY;
    CREATE TABLE COMPANY_DTL
    (CMPID NUMBER(10),
    CMPNAME VARCHAR2(100),
    ADDRESS ADD_TY_OBJ)
    NESTED TABLE ADDRESS STORE AS ADDRESS_TAB;thanks,
    Neeraj
    Edited by: Neeraj.Ora on Feb 26, 2011 1:03 PM

  • Error Thrown while assinging the value into OBJECT TYPE

    Hi Oracle Experts:
    i was create one Oracle OBJECT, that object contain only one variable, and i created one function which is return the object(system date), but while i complied that procedure i was thrown the error message like ORA-06530: Reference to uninitilized composite .
    can any one tell me how can i use the object variable in the select statement into clause .
    Below i pasted my code.
    CREATE OR REPLACE TYPE str_batch IS OBJECT
    sys_date DATE
    CREATE OR REPLACE FUNCTION F_Ln_Getodperd
    p_s_actype VARCHAR2,
    p_s_acno VARCHAR2,
    p_n_bal NUMBER,
    p_d_prodt DATE
    )RETURN str_batch
    IS
    lstr_od str_batch ;
    BEGIN
    SELECT SYSDATE  INTO lstr_od.sys_date FROM dual; -- Error(Error message shown in below)
    dbms_output.put_line('');
    RETURN lstr_od;
    END;
    Error:
    ORA-06530: Reference to uninitilized composite
    Thanks in advance
    Arun M M

    Hi Mr. Saubhik
    Below i Paste my original source code. Still am facing the same problem while i execute the function. can you please tell me the solution for this.
    OBJECT :
    CREATE OR REPLACE TYPE str_batch IS OBJECT
    batchno NUMBER,
    batchslno NUMBER,
    act_type VARCHAR2(20),
    act_no VARCHAR2(20),
    curr_code VARCHAR2(10),
    amount NUMBER(23,5),
    MOD VARCHAR2(10),
    drcr VARCHAR2(2),
    cheqno VARCHAR2(20),
    cheqdt DATE,
    sts VARCHAR2(4),
    operid NUMBER,
    narr VARCHAR2(300),
    srno VARCHAR2(10),
    rem_type VARCHAR2(10)
    Function :
    CREATE OR REPLACE FUNCTION F_Ln_Getodperd
    p_s_actype IN VARCHAR2,
    p_s_acno IN VARCHAR2,
    p_n_bal IN NUMBER,
    p_d_prodt IN DATE
    )RETURN str_batch
    IS
    lstr_od str_batch ;
    -- Variable Declaration
         v_n_perd     NUMBER;     
         v_n_lnperd     NUMBER;     
         v_n_mon NUMBER;
         v_n_effmon NUMBER;
         v_n_instno NUMBER;
         v_n_odno NUMBER;
         v_n_actual NUMBER(23,5);
         v_n_diff     NUMBER(23,5);
         v_n_inst     NUMBER(23,5);
         v_d_first     DATE;
         v_d_exp DATE;
         v_d_oddt     DATE;
         v_d_lastprod DATE;
         v_s_instmode VARCHAR2(10);
         v_s_inst     VARCHAR2(10);
         v_s_branch VARCHAR2(10);
         v_s_errm VARCHAR2(20000);
    BEGIN
    SELECT F_Get_Brcode INTO v_s_branch FROM dual;
         SELECT pay_c_final,lon_d_expiry, lon_d_lastprod
         INTO     v_s_inst,v_d_exp, v_d_lastprod
         FROM      LOAN_MAST
         WHERE branch_c_code = v_s_branch AND
              act_c_type      = p_s_actype AND
              act_c_no      = p_s_acno;
         IF (p_d_prodt > v_d_exp) THEN
              SELECT CEIL(MONTHS_BETWEEN(p_d_prodt,v_d_exp)) INTO lstr_od.batchslno FROM dual;
              lstr_od.cheqdt := v_d_exp;
              SELECT v_d_lastprod - p_d_prodt INTO lstr_od.batchslno FROM dual;
              --lstr_od.batchslno = DaysAfter(DATE(ldt_lastprod), DATE(adt_prodt))
         ELSE
              IF (v_s_inst = 'N') THEN
                   IF p_d_prodt > v_d_exp THEN
                        SELECT CEIL(MONTHS_BETWEEN(p_d_prodt,v_d_exp)) INTO lstr_od.batchslno FROM dual;
                        lstr_od.cheqdt := v_d_exp;
                   ELSE
                        lstr_od.batchslno := 1;
                   END IF;     
              ELSIF (v_s_inst = 'Y') THEN
                   SELECT first_d_due,lon_c_instperd,lon_n_perd
                   INTO v_d_first,v_s_instmode,v_n_lnperd
                   FROM LOAN_MAST
                   WHERE branch_c_code = v_s_branch AND
                        act_c_type      = p_s_actype AND
                        act_c_no          = p_s_acno;     
              SELECT CEIL(MONTHS_BETWEEN(p_d_prodt,v_d_first)) INTO v_n_mon FROM dual;          
                   IF v_n_mon > 0 THEN
                        SELECT NVL(ln_n_balance,0),NVL(ln_n_instlamt,0),NVL(ln_n_instlno,0)
                        INTO v_n_actual,v_n_inst,v_n_instno
                        FROM LOAN_INST_SCH
                        WHERE act_c_type = p_s_actype AND
                             act_c_no     = p_s_acno AND
                             ln_d_effdate = (SELECT MAX(ln_d_effdate)
                                                           FROM     LOAN_INST_SCH
                                                           WHERE act_c_type = p_s_actype AND
                                                                     act_c_no = p_s_acno AND
                                                                     ln_d_effdate < p_d_prodt);
                        IF (p_n_bal > v_n_actual) THEN
                             IF v_n_inst > 0 THEN
                             lstr_od.batchslno := (p_n_bal - v_n_actual) / v_n_inst;
                             END IF;
                        ELSE
                             lstr_od.batchslno := 1;
                        END IF;
                        IF lstr_od.batchslno = 0 THEN
                        lstr_od.batchslno := 1;
                        END IF;
                        --FOR FULL OD
                        IF (v_n_mon > v_n_lnperd) THEN
                        lstr_od.batchslno := (v_n_mon - v_n_lnperd) + lstr_od.batchslno;
                        END IF;
                        IF v_s_instmode = 'Q' THEN
                        lstr_od.batchslno := lstr_od.batchslno * 3;
                        ELSIF v_s_instmode = 'H' THEN
                        lstr_od.batchslno := lstr_od.batchslno * 6;
                        ELSIF v_s_instmode = 'Y' THEN
                        lstr_od.batchslno := lstr_od.batchslno * 12;
                        END IF;
                        SELECT p_d_prodt - lstr_od.batchslno INTO lstr_od.cheqdt FROM dual;
                        IF v_s_instmode = 'M' THEN
                        v_n_odno := v_n_instno - lstr_od.batchslno; -- TO get OD DATE
                             SELECT ln_d_effdate
                             INTO lstr_od.cheqdt
                             FROM LOAN_INST_SCH
                             WHERE act_c_type = p_s_actype AND
                                  act_c_no     = p_s_acno AND
                                  ln_n_instlno = v_n_odno;
                             IF SQLCODE = -1 THEN
                             lstr_od.batchslno := -1;
                             RETURN lstr_od;
                             END IF;
                        END IF;
                        ELSE
                        lstr_od.batchslno := 1;
                        END IF;                                             
              END IF;                                             
              END IF;     
    RETURN lstr_od;
    EXCEPTION
    WHEN OTHERS THEN
    v_s_errm := SQLERRM;
    dbms_output.put_line(SQLERRM);
    lstr_od.batchslno := -1;
    RETURN lstr_od;
    END;
    /

  • Problem with UDF updation - Object type 46

    Hi Experts,
    Scenario :
    For printing the amounts(in words- Indian format) in Cheque and marketing documents, we created UDFs in Title of marketing documents and outgoing payments.
    Then created a function in the DB for convertion of amounts into words and invoked it from  SBO_SP_TransactionNotification for object type '46' (Outgoing payment) and for transaction type 'A'.
    We tried it  with Out going payments
    Problem :
    Initially It was not working at all. When we removed the  transaction type condition the amount got updated on updation of existing records. Still It is not updating the UDFs while adding a new outgoing payment.
    We inserted the values like object type , transaction type etc into a temp table for testing from SBO_SP_TransactionNotification .
    The value we got for Out going payment addition is
    Object type: 30 and transaction type : A (Why this is 30 while adding outgoing payment?)
    The value we got for Out going payment modification is
    Object type: 46 and transaction type :U
    Please Help us on this
    I don't know whether this is the right forum or not.
    We are using SAP Business One 2007 B PL 13
    Thanks and regards
    Ajith G
    Edited by: Ajith G on Oct 5, 2009 11:48 AM

    Hi,
    Step to have check print in Indian format
    1)create function
    2)create user field in that master table
    3)make user define query
    declare @Doc_total numeric (19,6)
    set @Doc_total= (SELECT $[ORPC.DocTotal])
    declare @F100 varchar(20)
    declare @DocCurr varchar(20)
    SET @DocCurr= (SELECT $[ORPC.DocCur])
    set @F100= (SELECT Chk100Name FROM OCRN WHERE CurrCode = @DocCurr)
    select REPLACE(SBO_DB.dbo.AmountToWords (@Doc_total), 'Paise',  @F100)
    4)save above query and define that query in user field by shift+F2
    i hope u may know next step
    Kevin

  • When the combobox is rendered all the values displayed look like [object Object].

    I wasn't sure where to post this so please forgive me.
    I am trying to populate a combobox with a series of values
    returned from a Coldfusion method that retrives a resault froma
    database. Basically all the data from a table of staff.
    <cffunction name="getUsers" access="remote"
    returntype="array">
    <cfquery name="q" datasource="#datasource#">
    SELECT *
    FROM STAFF_CHARTS_STAFF_TEMP
    </cfquery>
    <cfset aRecordset= querytoarray(q)>
    <cfset flash.result=aRecordset>
    <cfreturn flash.result>
    </cffunction>
    <cffunction name="querytoarray" returntype="array"
    output="No">
    <cfargument name="q" required="Yes" type="query">
    <cfset var aTmp = arraynew(1)>
    <cfif q.recordcount>
    <cfloop query="q">
    <cfset stTmp = structNew()>
    <cfloop list="#lcase(q.columnlist)#" index="col">
    <cfset stTmp[col] = q[col][currentRow]>
    </cfloop>
    <cfset arrayAppend(aTmp,stTmp)>
    </cfloop>
    <cfelse>
    <cfset stTmp = structNew()>
    <cfloop list="#lcase(q.columnlist)#" index="col">
    <cfset stTmp[col] = "">
    </cfloop>
    <cfset arrayAppend(aTmp,stTmp)>
    </cfif>
    <cfreturn aTmp>
    </cffunction>
    The result from a call of CF method getUsers is set as the
    data provider to ComboBox with id = "cb"
    <mx:RemoteObject
    id="myService"
    destination="ColdFusion"
    source="staff_ratings.staff_Ratings-debug.staff"
    showBusyCursor="true">
    <mx:method name="getUsers" result="handleResult(event)"
    fault="Alert.show(event.fault.message)"/>
    </mx:RemoteObject>
    <mx:Script>
    <![CDATA[
    import mx.rpc.events.ResultEvent;
    import mx.controls.Alert;
    [Bindable]
    public var sResult:Array;
    public function handleResult(event:ResultEvent):void{
    sResult=event.result as Array;
    cb.dataProvider=sResult;
    ]]>
    </mx:Script>
    However when the combobox is rendered all the values
    displayed look like [object Object].
    I think the problem is that the result is a array of arrays
    so I need to find away to ectract a particular colun of data into
    the combobox
    How do I fix this?

    This is what I did for a single field.
    If you were wanting the to have muliple fields in the
    dropdown, I would concatenate them in the query.
    something like
    select fname + ' ' + lname + ' ' + anotherfield as tech from
    dbo.table
    <cffunction name="getTech" output="no" access="remote"
    returntype="query">
    <cfset var qTech="">
    <cfquery name="qTech" datasource="datasource">
    select tech
    from dbo.table
    group by tech
    order by tech
    </cfquery>
    <cfreturn qTech>
    </cffunction>
    <mx:RemoteObject
    id="dataManager"
    showBusyCursor="true"
    destination="ColdFusion"
    source="cust.components.cfgenerated.Records">
    <mx:method name="getMasterQuery"
    result="getMasterQuery_result(event)" fault="server_fault(event)"
    />
    <mx:method name="deleteItem"
    result="deleteItem_result(event)" fault="server_fault(event)" />
    </mx:RemoteObject>
    <mx:ComboBox id="TECH"
    dataProvider="{dataManager.getTech.lastResult}" labelField="tech"
    />

  • OSB to Object Types: difference between NULL value and not available

    Hello all,
    I have a question about Object Types. More specifically, how to differentiate between an empty value (null) and a string not available.
    This is my case:
    I have created an object type with three parameters.
    CREATE OR REPLACE TYPE OSB_EMP_OBJ_TYPE AS OBJECT
    (EMP_ID NUMBER
    ,DEPT_ID NUMBER
    ,ORDER_ID NUMBER
    ,CONSTRUCTOR FUNCTION OSB_EMP_OBJ_TYPE
    RETURN self as result
    /I would like to see what happens when I put an empty string into emp_id, NULL into DEPT_ID and nothing into ORDER_ID.
    To do so I have this test script:
    declare
      p_emp OSB_EMP_OBJ_TYPE := OSB_EMP_OBJ_TYPE();
    begin
      p_emp.EMP_ID := '';
      p_emp.DEPT_ID := null;
    --  p_emp.ORDER_ID := null;
      if p_emp.EMP_ID is null
      then
        dbms_output.put_line('Empty');
      end if;
      if p_emp.DEPT_ID is null
      then
        dbms_output.put_line('NULL');
      end if;
      if p_emp.ORDER_ID is null
      then
        dbms_output.put_line('Not available');
      end if;
    end;The result of this is:
    Empty
    NULL
    Not availableIt seems that Oracle treats all three situations alike. What I would like to achieve is a way to see that p_emp.ORDER_ID was not initialized.
    To elaborate a bit: in our production system this procedure would be called from OSB and the object type would by the input for that procedure. Our database version is 10.2.0.5.0.
    Our procedures look something like this:
    procedure p_procedure ( p_emp in osb_emp_obj_type )
    is
    begin
      do_something;
    end;Can anyone tell me if there is a way to achieve this, so I can see whether or not a value in the object type was filled?
    Thanks in advance!

    Darn...
    Eventually we want to use this for an update procedure. The client gets all current data from the database by calling a webservice that (using OSB) selects the data from our database. What we want to achieve is that the client can update that data, by returning only the changed fields to an update procedure.
    We then handle an empty tag to update the field to null, and we ignore missing tags.
    OSB itself can handle this, but PL/SQL can't.
    I'm now thinking of adding an indicator to each optional field (clear_field_yn). OSB can still check for empty tags or missing tags. When a tag is empty, it's corresponding indicator will be set to 'Y'. If the tag is missing, then it will be set to 'N'.
    Is that a solution to consider, or is there a much simpler approach possible?

  • How to return Values from Oracle Object Type to Java Class Object

    Hello,
    i have created an Oracle Object Types in the Database. Then i created Java classes with "jpub" of these types. Here is an example of the type.
    CREATE OR REPLACE TYPE person_type AS OBJECT
    ID NUMBER,
    vorname VARCHAR2(30),
    nachname VARCHAR2(30),
    geburtstag DATE,
    CONSTRUCTOR FUNCTION person_type RETURN SELF AS RESULT,
    CONSTRUCTOR FUNCTION person_type(p_id NUMBER) RETURN SELF AS RESULT,
    CONSTRUCTOR FUNCTION person_type(p_vorname VARCHAR2,
    p_nachname VARCHAR2,
    p_geburtstag DATE) RETURN SELF AS RESULT,
    MEMBER FUNCTION object_exists(p_id NUMBER) RETURN BOOLEAN,
    MEMBER PROCEDURE load_object(p_id NUMBER),
    MEMBER PROCEDURE save_object,
    MEMBER PROCEDURE insert_object,
    MEMBER PROCEDURE update_object,
    MEMBER PROCEDURE delete_object
    MEMBER PROCEDURE load_object(p_id NUMBER) IS
    BEGIN
    SELECT p.id, p.vorname, p.nachname, p.geburtstag
    INTO SELF.ID, SELF.vorname, self.nachname, SELF.geburtstag
    FROM person p
    WHERE p.id = p_id;
    END;
    My problem is, that if i use the member function "load_object" from my java app it doesnt return the selected values to the java class and i dont know why. I use the java class like this:
    PersonObjectType p = new PersonObjectType();
    p.load_object(4);
    There is a reocrd in the database with id = 4 and the function will execute successful. But if i try to use "p.getVorname()" i always get "NULL". Can someone tell me how to do that?
    Thanks a lot.
    Edited by: NTbc on 13.07.2010 15:36
    Edited by: NTbc on 13.07.2010 15:36

    CallableStatement =
    "DECLARE
    a person_type;
    BEGIN
    a.load_object(4);
    ? := a;
    END;"
    And register as an out parameter.
    Edited by: michael76 on 14.07.2010 05:01

  • Get object type attribute value

    1 am trying binding Oracle Object types to java object types using the ORAData interface.
    I created a simple object type called att_mesg_type with the syntax
    create type att_mesg_type as object (subject varchar2(200),Text varchar2(1000));
    I then created a class called attMesgType using Jpublisher which implements the interface.
    The getSubject() and getText() method return '???'.
    Anybody has any insights? Any inputs are appreciated.

    declare
    attr_name varchar2(10) := 'ATTR1';
    attr_value varchar2(50);
    type_instance MyType := MyType('VALUE 1', 'VALUE 2');
    begin
        execute immediate 'declare type_instance MyType := :1; begin :2 := type_instance.' || attr_name || '; end;'
          using type_instance,out attr_value;
        dbms_output.put_line(attr_value);
    end;
    VALUE 1
    PL/SQL procedure successfully completed.
    SQL> SY.

  • Transaction SMOEAC does not display Object type and Object Name options.

    Dear all,
    When I go to transaction SMOEAC system does not display fields Object type and Object Name option instead displays an empty frame allowing only to create new objects.
    System does not allow and display existing objects to edit.
    Most imp with the same ID, I am able to see the existing objects and two fields "Object type" and "Object Name" on different machine. So there is no authorization issue.
    My SAP GUI version where these fields are not visible is 640 Final Release with 6405.5.18.1016 version and Patch level 18.
    My SAP GUI version here these fields are visible is 640 Final Release with 6404.4.14.1012 version and Patch Level 14.
    Any idea what could be the reason?
    Regards,
    Sandeep Parab

    With installation of latest version of SAP GUI 710 final Release resolved my problem.
    Regards,
    Sandeep

  • Display values at Infotype "Objects" - BADI HRBAS00INFTY

    Hello,
    I'm studying the badi HRBAS00INFTY and i want to know if it's possible to use the before_output method to display some values at Object abb and Object name fields(like a Search Help) when the user is creating the infotype Objects.
    If no, is there another way i could go through?
    Thanks!

    Thank you very much for your response. I've tried to use the function module, but I get the following dump:
    In the function "HR_COSTDISTRIBUTION_SCREEN_PUT", the STRUCTURE parameter  
    "I_RHCOST_OM" is typed in such a way                                      
    that only actual parameters are allowed, which are compatible in Unicode   
    with respect to the fragment view. However, the specified actual          
    parameter "'01S 70003361'" has an incompatible fragment view.              
    The coding looks like this (just for testing):
    call function 'HR_COSTDISTRIBUTION_SCREEN_PUT'  
    EXPORTING                                       
      i_mode             = 'D'                      
      i_type             = '1'                      
      i_data             = '2009090199991231'       
      i_rhcost_om        = '01S 70003361'           
    TABLES                                          
      i_costdistribution = gt_distribution.         
    I don't know what to do.
    Can anybody help me?
    Regards,
    Daniela

  • Urgent--==creation of object type in MASSOBJ transaction

    hi all:
    Could any one urgently tell me how to create object type in Massobj transaction.(this is done to delete purchase requisition in bulk in transaction 'Mass' (AND not in 'MASSOBJ').)
    i have created in Massobj transaction by pressing 'new enteries' button, but several elements are missing.
    so it give short dump after running transaction Mass.
    Object type is created in Massobj transaction and executed in Mass transaction.
    could anyone find solution for this urgetly.
    thanx in advance
    regards
    raj

    Hi,
    There is an standard object BUS2105 to for the mass maintanance purpose.
    You can directly go to MASS transaction and give the object type BUS2105 at the intial selection screen and don't mention any variant name.Execute it and displays the next screeen whereas you have the option to select the field you want and execute it again.Go to the next screen and specify the PR number range and specify the new value for the mass maintanace.After that you got to select the push button 'Carry out a mass change'.
    I hope this would help you.
    Thank you.
    Regards,
    karun.M

Maybe you are looking for