Calling a procedure in apex - how?

i am not very experienced at apex.
is there any way that one can call a PL/SQL procedure from say a button when it is clicked. or some other way. i am trying to insert rows into another table automatically when this event is triggered. is it possible.
any help would be very appreciated.

Don't post follow-ups to closed/old threads/departed users. None of the users involved in this thread have been active on this forum for months.
<li>Other users may ignore the thread as it appears to be closed
<li>Your assumption that the questions are related may be incorrect, leading to confusion about the nature of the problem and potential solutions
<li>Watches on the thread may have expired, so the original participants may be unaware of the new post, or they may no longer be active on the forum
<li>APEX Phone Test
<li>You have no ability to mark posts as helpful or correct
Post your question as a new thread, including the following information:
<li>APEX version
<li>DB version and edition
<li>Web server architecture (EPG, OHS or APEX listener)
<li>Browser(s) used
<li>Theme
<li>Templates
<li>Region type
<li>Links to related posts and threads using the methods in the FAQ.
And update your forum profile with a better handle than "862509".

Similar Messages

  • Calling a procedure form APEX (EPG) rendering within error

    Hi Guys,
    I have the error below when I tried to call this procedure from the URL:
    http://localhost:8080/apex/liib.pkg_auth.verify_user?p_user=Yasino&p_code=9F2E2876B8B3AB0F96C7DA6A51BA1EDB
    Not found
    The requested URL /apex/liib.pkg_auth.verify_user was not found on this server
    where:
    1) I granted execute privilege on the package pkg_auth to the user APEX_PUBLIC_USER
    2) I am sure the procedure name is correct
    3) The parameters as shown with the URL above are fine.
    Thanks for any help on this

    This example shows how to use an on demand process instead of granting public access and call a procedure over a hyperlink:
    http://apex.oracle.com/pls/otn/f?p=31517:15
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • Securely calling stored procedure with APEX URL

    I have a web server that needs to call a stored procedure on an Oracle database (v10.2.0.4.0-64bit), and to do so without storing schema credentials on the web server it has been recommended to call the procedure using a URL to APEX, and granting execute privileges on the package storing the procedure to APEX_PUBLIC_USER.  However, this allows anyone on the network to call the procedure if they have the URL.  Is there any way to make sure that either Apex or the procedure only responds directly to requests from the web server?

    Nick,
    Assuming you are talking about application server ( not web server ).
    It is common practice to create new user on Oracle database (often called proxy user, so you don't have to use schema credentials). Grant this user privileges to call package you need. Then on application server store encrypted credentials for this new user.
    Application (java or .net) then connects to Oracle using new user credentials and executes packaged procedure.
    Using Apex is the same. You need to have Authentication enabled (hence to store user id and password). If not, it is not secure.
    Making any application (including Apex) to respond to request from specific IP  is possible by inspecting ip from request header (Apex : UTL_HTTP.GET_HEADER ).
    There are problems however:
    1.If connection is made by proxy, request ip can change.
    2.Hackers can use "ip spoofing" to emulate request from permitted server.
    Another option would be to set up proxy server rules, permitting traffic between selected servers only.
    HTH
    Thomas

  • Calling stored procedure from Apex

    I am a total newbie at Apex so any help would be appreciated. My situation:
    I created Apex app with few forms and reports. Since I want to implement security for some tables, example:
    Table Employee has columns email and credit_card_num. These 2 columns are encrypted using DBMS_CRYPTO.
    My Oracle Database version in Oracle XE 11g Release 2.
    So I have stored procedure and package for encryption and decryption using dbms_crypto.
    When I add new employee in APEX form email and credit card number are passed as plain text and saved on that way in database.
    1. How can I make it to be saved as encrypted value using package and procedures I've created in the database (to parse the inserted value to function)?
    2. Since I am a total dummy and newbie at Apex can anyone explain me how does Apex really work? Is the inserted data sent in plain text or encrypted over network?
    Thank you

    84e45717-06df-499e-a789-5312b7434a74 wrote:
    1. How can I make it to be saved as encrypted value using package and procedures I've created in the database (to parse the inserted value to function)?
    You have a few options.  You can create a Process (after submit process) that calls your code.
    For example, if your form is on Page 2 and you're saving the EMP table your process could look like this:
    begin
      app_util.emp_save_secure(p_EMPNO => :P2_EMPNO
    , p_ename => :P2_ENAME
    , p_deptno => :P2_DEPTNO);
    end;
    Here of course app_util is your own package (with any name you want) and emp_save_secure is the procedure that will receive the params to save.
    You could also use the APEX wizard to create a form on the Procedure then edit the code as you need. It would be almost the same result, but probably less typing and less typos.
    2. Since I am a total dummy and newbie at Apex can anyone explain me how does Apex really work? Is the inserted data sent in plain text or encrypted over network?
    Thank you
    Like any web page, if your connection is done with HTTPS then the data from the browser to the webserver will be encrypted and that's all completely transparent to you.  If your call is HTTP then it will be done in clear text.
    To setup an SSL connection that uses HTTPS you'll need to create a certificate on the server and configure HTTPS. This is better done by a DBA that knows what they are doing. 
    Thanks
    -Jorge
    http://rimblas.com/blog/

  • Oracle Form functions and procedures in APEX, how?

    I am working to recreate in APEX, already existing Read Only Forms in Oracle Forms. APEX Interactive Report functionality among other things, makes it worth while as well as targetting a different audience than the one that utilizies the Oracle Form versions. Oracle Forms versions use lots of pre and post query triggers, PLSQL Functions.
    In Oracle Forms one of the places those functions can be located is in the "Program Units" section of the Form. A typical function of this sort, based on a specific Mission ID Itinerary, collects scheduled passengers last names, formats them with a comma and space after each one, into a single string that is returned and displayed as the passenger list of one row.
    I have all this code written so I can move most of the main query of the Oracle Form into an Interactive Report. These functions and triggers called from within the Form, from the "Program Units" section of the Oracle Form rather than being stored in the Database schema in a package, where would they go inside APEX? Can I create a "Shortcut" in APEX and call it from the Interactive Report "Region Source"? Can I create the PLSQL function at the page level or region level of the Interactive Report? Or, is my best bet creating a package stored in the database, of all these functions and/or proecedures I may need from the original Oracle Form?
    Some advice would be greatly appriciated.

    RLBickham wrote:
    I don't think I have been clear enough in describing the specific thing I want to do, it simply does not reach the level of forms to APEX conversion. It is basically a PLSQL Function problem.
    I have an Interactive Report that is currently getting 90 percent of what I want however, each row, representing a Mission may have multiple legs. Each Leg has two locations or ICAO codes attached to it. Based on the Mission number, I want to loop through the leg table, collect all the ICAO codes for that Mission, put them all into 1 variable separated by a coma and add that variable to the column display of that Interactive Report as the last column.
    In Oracle Forms I have a function saved to the database that is called within the main query. Maybe I am asking a question that does not need to be asked but in any case my question is can I put that function currently in the database somewhere in the confines of the Interactive Report and reference it via Http somehow or should I just stick with putting functions and procedures in packages stored in the database and called the conventional way?You could move the function to the database and call it from the report query, but it sounds as if it's superfluous. In the report query use whatever form of Re: 4. How do I convert rows to columns? is appropriate to your (unspecified) database version.
    When you have a problem you'll get a faster, more effective response by including as much relevant information as possible upfront. This should include:
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    <li>Theme
    <li>Template(s)
    <li>Region/item type(s) (making particular distinction as to whether a "report" is a standard report, an interactive report, or in fact an "updateable report" (i.e. a tabular form)
    With APEX we're also fortunate to have a great resource in apex.oracle.com where we can reproduce and share problems. Reproducing things there is the best way to troubleshoot most issues, especially those relating to layout and visual formatting. If you expect a detailed answer then it's appropriate for you to take on a significant part of the effort by getting as far as possible with an example of the problem on apex.oracle.com before asking for assistance with specific issues, which we can then see at first hand.

  • Calling Stored Procedure from APEX window

    Hopefully someone will be able to help me. I have a stored procedure that generates a csv of time worked from our system. When I hard code the values in the procedure and call it from a button, the popup window opens excel and displays the time worked.
    When I call it with session variables, the window opens, but no values are listed for time worked.
    This is the first line of the proc.
    create or replace procedure "PRC_EXP_HOURS_TO_CSV"
    (p_name IN VARCHAR2,
    p_wk_end_dt IN DATE).....
    This is how the button calls the proc
    javascript:popupURL('#OWNER#.prc_exp_hours_to_csv?p_name=&P20513_NAME.,&p_wk_end_dt=&P20513_ACTIVITY_DATE.');
    Both P20513_NAME and P20513_ACTIVITY_DATE show a session status of 'I' so I am not sure what is going wrong here. As stated if I hard code values in the proc for name and '06-APR-08' for date the proc runs.
    Kevin

    Kevin
    Is it possible that :P20513_NAME value has "special" characters (space, comma, etc)?
    If it has then you have to "escape" it or you can get values with V functions in your stored procedure:
    <pre>
    declare
    l_name varchar2(4000);
    l_date date;
    begin
    l_name := v('P20513_NAME');
    l_date := v('P20513_ACTIVITY_DATE');
    </pre>
    Lev

  • Can BI Publisher call stored procedures?

    Can BI Publisher call stored procedures,no matter how?

    Hi,Chris
    "Stored PL/SQL procedures can be called from data Templates and Oracle Reports."Really?It is a great news for me.
    Currently I am working on a poc.
    There is a problem about calling Oracle stored procedures directly thru BI EE or BI Publisher.
    Our customer has a lot of stored procedures in their previous system,they strongly hope our BI EE can call these sp directly.
    All of these sp return the result set to the cursor,then the applications operate the cursor.
    As there is no way can BI EE working with Oracle stored procedures or cursor,I am wondering whether can I call the sp from BI Publisher.
    Can BI Publisher call sp or pl/sql?Can data template using pl/sql not only pure sql statements?
    I have try write some pl/sql in data template,but it failed.It seems that the data template can only operate on some returned result sets.But sp won't.
    If sp can be called thru data template,everything will be ok for me.For I can use pl/sql to opereate the returned cursor.

  • How to call one procedure from another procedure

    Hi all,
    Could anyone give me clue how to call a procedure contains out parameters
    from another procedure.
    I had following procedures.
    1)
    create or replace procedure INS_PUR_ORDER
    p_poamt in number,
    p_podate in date,
    p_poid out number
    is
    begin
    select pkseq.nextval into p_poid from dual;
    insert into pur_order(poamt,podate,poid)
    values (p_poamt,p_podate,p_poid);
    end;
    2)
    create or replace procedure INS_PUR_ORDER_DETAIL
    p_pounits in number,
    p_poddate in date,
    p_poid in number)
    is
    begin
    Insert into pur_order_detail(podid,pounits,poddate,poid)
    values(pdseq.nextval,p_pounits,p_poddate,p_poid);
    end;
    I need to write a 3rd procedure which calls above two procedures.
    like
    call first procedure ,basing on the return value
    i.e if p_poid != 0 then
    we need to call second procedure
    in the loop.
    thanks in advance.
    rampa.

    Not sure what are you doing, you can not assign cursor to another cursor, may be you are looking for this?
    SQL> create or replace procedure proc1 ( result out sys_refcursor)
      2  is
      3  
      4  begin
      5     open result for
      6       select 'HELLO WORLD' from dual ;
      7  end proc1 ;
      8  /
    Procedure created.
    Elapsed: 00:00:00.01
    SQL> create or replace procedure proc2
      2  is
      3     l_cursor sys_refcursor ;
      4  begin
      5     l_cursor := proc1 ;
      6   
      7  
      8     open l_cursor;
      9     fetch l_cursor into l_text;
    10     dbms_output.put_line(l_text);
    11     close l_cursor;
    12  
    13  
    14  end proc2 ;
    15  /
    Warning: Procedure created with compilation errors.
    Elapsed: 00:00:00.01
    SQL> show error;
    Errors for PROCEDURE PROC2:
    LINE/COL ERROR
    5/4      PL/SQL: Statement ignored
    5/16     PLS-00306: wrong number or types of arguments
             in call to 'PROC1'
    6/4      PLS-00201: identifier 'L_TEXT' must be
             declared
    6/4      PL/SQL: Statement ignored
    8/4      PLS-00382: expression is of wrong type
    8/4      PL/SQL: SQL Statement ignored
    9/4      PL/SQL: SQL Statement ignored
    9/24     PLS-00201: identifier 'L_TEXT' must be
             declared
    10/4     PL/SQL: Statement ignored
    10/25    PLS-00201: identifier 'L_TEXT' must be
             declared
    ---- this is the correct waySQL>ed
      1  create or replace procedure proc2
      2  is
      3     l_cursor sys_refcursor ;
      4     l_text varchar2(100);
      5  begin
    ---- procedure call
      6     proc1(l_cursor); 
    7    -- open l_cursor;
      8     fetch l_cursor into l_text;
      9     dbms_output.put_line(l_text);
    10     close l_cursor;
    11* end proc2 ;
    SQL> /
    Procedure created.
    Elapsed: 00:00:00.01
    SQL> set serveroutput on
    SQL> execute proc2;
    HELLO WORLD
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    SQL>

  • Error when calling a procedure from my apex application

    Hello.
    I want to create a small APEX application that can configure asynchronous change data capture (distributed hotlog) on certain tables.
    Basically, what the application should do is to simply create change tables. Everything else is set up as prerequisite.
    My problem is that when I run the following script from schema apex_cdd (using sqldeveloper) , it works; but if I run it from my apex application by calling it when pressing a button as a pl/sql process, it doen't work.
    BEGIN
    apex_cdc.enable_table_capture
         (     i_owner => 'staging_cdcpub',
              i_change_table_name     => 'g_changeTable',
              i_change_set_name     => 'Source_changeSet',
              i_change_source          => 'orcl01_cs',
              i_source_schema          => 'My_src',
              i_source_table          => 'G',
              i_column_type_list     => 'STARTDATE DATE,STATUS CHAR(1),NAME VARCHAR2(10),ENDDATE DATE,DESCRIPTION VARCHAR2(255),ID NUMBER(8,0),VALUE NUMBER(10,2)'
    END;
    If I look in the trace file, i see that the error is:
    CDCdebug:in ChangeTable.java enableDisabledTriggers: ORA-06550: line 1, column 8:
    PLS-00201: identifier 'SYS.DBMS_CDC_SYS_IPUBLISH' must be declared
    ORA-06550: line 1, column 8:
    PL/SQL: Statement ignored
    oracle.jdbc.driver.OracleSQLException: ORA-06550: line 1, column 8:
    PLS-00201: identifier 'SYS.DBMS_CDC_SYS_IPUBLISH' must be declared
    ORA-06550: line 1, column 8:
    PL/SQL: Statement ignored
    Other remarks:
    - My procedure calls: sys.DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE.
    - I gave the same rights that I gave for apex_cdc schema to flows_030200 and APEX_PUBLIC_USER schemas (just to see if it works), but it doens't.
    Is APEX calling the procedure from another schema ?
    Does anyone has an idea why this procedure crashes if called from APEX application, but works ok if called from the same schema APEX application runs on, but using SQLDeveloper ?
    Any thoughts are appreciated.
    Radian

    The procedure apex_cdc.enable_table_capture i created myself with no authid mentioned explicitly, so it uses definer rights, by default.
    BUt this procedure is simply a wrapper for sys.dbms_cdc_publish.create_change_table.
    When I look on the security model for this sys.dbms_cdc_publish, i see it runs under invoker rights. (http://www.psoug.org/reference/dbms_cdc_publish.html).
    The code is like this:
    CREATE OR REPLACE PROCEDURE enable_table_capture
              i_owner               IN VARCHAR2,
              i_change_table_name     IN VARCHAR2,
              i_change_set_name     IN VARCHAR2,
              i_change_source          IN VARCHAR2,
              i_source_schema          IN VARCHAR2,
              i_source_table          IN VARCHAR2,
              i_column_type_list     IN VARCHAR2
         IS
         BEGIN
              EXECUTE IMMEDIATE 'alter session set REMOTE_DEPENDENCIES_MODE=SIGNATURE';
              EXECUTE IMMEDIATE 'begin add_log@orcl01(i_tableName => ''G''); end;';
    sys.DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE(
    owner => i_owner,
    change_table_name => i_change_table_name,
    change_set_name => i_change_set_name,
    source_schema => i_source_schema,
    source_table => i_source_table,
    column_type_list => i_column_type_list,
    capture_values => 'both',
    rs_id => 'y',
    row_id => 'n',
    user_id => 'n',
    timestamp => 'y',
    object_id => 'n',
    source_colmap => 'n',
    target_colmap => 'y',
    options_string => NULL);
    END enable_table_capture;

  • How to set the root path of XML document when calling Inserting procedure

    Hi,
    I was create a procedure to insert XML Document in to DBMS Tables, but i am not able to set the Start root element in calling procedure.
    My calling procedure is
    exec insXmldoc('pmc_sample.xml', 'pmc')
    When i am calling this procedure i got this error
    11:23:54 Error: ORA-29532: Java call terminated by uncaught Java exception: oracle.xml.sql.OracleXMLSQLException: Start of root element expected.
    ORA-06512: at "SYS.DBMS_XMLSAVE", line 65
    ORA-06512: at "SCOTT.INSPROC", line 8
    ORA-06512: at line 2
    I am checking my XML file using XML Validator. My XML file was parsed with out errors.
    Please give the solution,and tell me where i did wrong in my calling procedure.
    suppose i have this XML file in local E drive ,how to set the path for that XML file in my calling procedure.

    Hi, I am doing the code likthis,please give the solution.
    SQL> create or replace procedure insProc(xmlDoc IN CLOB, tableName IN VARCHAR2) is
    2 insCtx DBMS_XMLSave.ctxType;
    3 l_ctx dbms_xmlsave.ctxtype;
    4 rows number;
    5 begin
    6 insCtx := DBMS_XMLSave.newContext(tableName); -- get the context handle
    7 rows := DBMS_XMLSave.insertXML(insCtx,xmlDoc); -- this inserts the document
    8 DBMS_XMLSave.closeContext(insCtx); -- this closes the handle
    9 end;
    10 /
    Procedure created.
    SQL> begin
    2 insProc('/usr/tmp/ROWSET.xml', 'emp');
    3 end;
    4 /
    begin
    ERROR at line 1:
    ORA-29532: Java call terminated by uncaught Java exception: oracle.xml.sql.OracleXMLSQLException:
    Start of root element expected.
    ORA-06512: at "SYS.DBMS_XMLSAVE", line 65
    ORA-06512: at "SCOTT.INSPROC", line 7
    ORA-06512: at line 2
    Kishore B

  • How to Call HANA Procedure in ABAP

    Hi Everyone,
    I am new to ABAP
    I have created a procedure in HANA that accepts two input parameters and outputs a table
    I am using HANA as a Secondary Database
    How can I call this procedure in my ABAP program?
    Regards,
    Vivek

    Hi Vivek,
    depends on how you would like to call it :-)
    1. Use native SQL to call the procedure (see report ADBC_DEMO_PROC_CALLS_HDB; available in any system with a minimum NetWeaver release 7.40 SP5).
    2. Create a DB Procedure Proxy and call the DB Procedure Proxy (Tutorial: How to consume SAP HANA Procedures in ABAP; only "directly" available if HANA is the primary DB underlying your system, for secondary DB system see discussion Execute Procedure with input parameters as table from ABAP).
    3. (Method of choice available as of NetWeaver 7.4 SP5): Create an ABAP managed DB procedure (instead of the native HANA procedure) as described in ABAP Managed Database Procedures - Introduction
    Cheers,
      Jasmin

  • How to call Stored Procedure in OWB?

    Hi,
    I'm not able to call stored procedures in the OWB. There are transformations available to call the functions namely Mapping Transformation, but i didnt find any such transformation for stored procedures.
    I was able to validate, generate ad deploy the stored procedure, but coudn't find any trasnformation which calls the stored procedure.
    And my source and the target are in the same schema, hence a connector module is also not needed.
    Can anyone help me in this regard and explain how to call a stored procedure in the Oracle Warehouse Builder?

    Hi Patrick,
    Thanks a lot for your reply.
    Hey Patric, sorry to bug you again.
    Regarding calling the Stored procedure, mine is a very simple scenario.
    I have created a table with two fields say A and B. My stored proc takes an input A1. The stored proc then selects the B field from that table when A1 has the same value as A.
    Then i check the condition, if the selected value is null then set the output variable to 'N'. Else to 'Y'.
    The logic that i'm following in OWB is:
    1.) create a mapping which contains the source as a table.
    2.) Give the field A in that table as an input to the Stored procedure which i can have it my Mapping Trasformation.
    3.) Then i need to specify the condition that the field A in the table should be equal to A1. And if equal, then fetch the value from the table and display either 'Y' or 'N' based on the condition that is checked in the Procedure.
    But the problem here i'm facing is that,i'm not able to store the output into a file, since the procedure doesnot return a value. And my target is a file.
    should i need to change my logic.
    Regards,
    Abhinav.

  • How to call stored procedure in hibernate

    hi ,
    can any one help me how to call stored procedure in hibernate.Given code in hbm.xml
    and also plz tell me what is the use of <return-property/>in given hbm.xml file.
    <sql-query name="selectEmployees_SP" callable="true">
         <return alias="emp" class="com.centris.Employee">
    <return-property name="eno" column="eno"/>
    <return-property name="ename" column="ename"/>
    <return-property name="address" column="address"/>
    <return-property name="salary" column="salary"/>
    { ? = call p_retrieve_employees() }
    </return>
    </sql-query>

    Hi,
    Your question isn't related to Java Programming and should be asked in a [Hibernate forum|http://forum.hibernate.org/]
    Kaj

  • How to use @jws:sql call Stored Procedure from Workshop

    Is there anyone know how to use @jws tag call Sybase stored procedure within
    Workshop,
    Thanks,

    Anurag,
    Do you know is there any plan to add this feature in future release? and
    when?
    Thanks,
    David
    "Anurag Pareek" <[email protected]> wrote in message
    news:[email protected]..
    David,
    In the current release, we do not support calling stored procedures from a
    database control. You will have to write JDBC code in the JWS file to call
    stored procedures.
    Regards,
    Anurag
    Workshop Support
    "David Yuan" <[email protected]> wrote in message
    news:[email protected]..
    Anurag,
    I know how to use DB connection pool and create a db control with it. In
    fact, we have created a Web Service with the db control using plain SQL
    in
    @jws:sql. However, my question here is how to use @jws tag in Weblogic
    Workshop to create a Web Services based on Sybase stored procedure orany
    Stored Proc not plain SQL.
    Thanks,
    David
    "Anurag Pareek" <[email protected]> wrote in message
    news:[email protected]..
    David,
    You can use a database control to obtain a connection from any JDBC
    Connection Pool configured in the config.xml file. The JDBC Connectionpool
    could be connecting to any database, the database control is
    independent
    of
    that.
    Regards,
    Anurag
    Workshop Support
    "David Yuan" <[email protected]> wrote in message
    news:[email protected]..
    Is there anyone know how to use @jws tag call Sybase stored
    procedure
    within
    Workshop,
    Thanks,

  • How to call parent procedure in child type?

    i have two types,A and B.
    B inherits from A and overrides a procedure 'prints',
    then how call A's prints method in B?
    following is codes:
    create or replace type A as object (
    rowsID integer;
    member procedure printRowsID
    create or replace type body A as
    member procedure printMembers is
    begin
    dbms_output.put_line(rowsID);
    end;
    end;
    create or replace type B under A (
    roundNO number(2),
    overriding member procedure printMembers
    create or replace type B as
    overriding member procedure printMembers is
    begin
    dbms_output.put_line(roundNO);
    /*here i also want to print attribute value of 'rowsID',
    but how to call parent's procedure which is overrided? */
    end;
    end;

    A.<<method>> syntax is wrong here because method is
    not static.
    Unfortunately Oracle doesn't have the syntax like C++ -
    A::<<method>> - which allows you to call methods of
    superclasses directly.
    TREAT function also can't help you because even if
    you treat SELF as supertype Oracle will work with
    real type of object:
    SQL> create or replace type A as object (
      2  rowsID integer,
      3  member procedure printMembers
      4  ) not final
      5  /
    &nbsp
    Type created.
    &nbsp
    SQL> create or replace type body A as
      2  member procedure printMembers is
      3   begin
      4    dbms_output.put_line('Class A - ' || rowsID);
      5   end;
      6  end;
      7  /
    &nbsp
    Type body created.
    &nbsp
    SQL> create or replace type B under A (
      2  roundNO number(2),
      3  member procedure whatisit
      4  )
      5  /
    &nbsp
    Type created.
    &nbsp
    SQL> create or replace type body B as
      2 
      3  member procedure whatisit
      4  is
      5   aself a;
      6  begin
      7   select treat(self as a) into aself from dual;
      8   if aself is of (b) then
      9     dbms_output.put_line('This is B');
    10   else
    11     dbms_output.put_line('This is A');
    12   end if;
    13  end;
    14 
    15  end;
    16  /
    &nbsp
    Type body created.
    &nbsp
    SQL> declare
      2   bobj b := b(1,2);
      3  begin
      4   bobj.whatisit;
      5  end;
      6  /
    This is B
    &nbsp
    PL/SQL procedure successfully completed. One of workarounds is to use type-specific non-overrided
    static method:
    SQL> create or replace type A as object (
      2  rowsID integer,
      3  member procedure printMembers,
      4  static procedure printA(sf A)
      5  ) not final
      6  /
    &nbsp
    Type created.
    &nbsp
    SQL> create or replace type body A as
      2 
      3  member procedure printMembers is
      4   begin
      5    A.printA(self);
      6   end;
      7 
      8  static procedure printA(sf A)
      9  is
    10   begin
    11    dbms_output.put_line('Class A - ' || sf.rowsID);
    12   end;
    13 
    14  end;
    15  /
    &nbsp
    Type body created.
    &nbsp
    SQL> create or replace type B under A (
      2  roundNO number(2),
      3  overriding member procedure printMembers
      4  )
      5  /
    &nbsp
    Type created.
    &nbsp
    SQL> create or replace type body B as
      2 
      3  overriding member procedure printMembers
      4  is
      5   begin
      6    dbms_output.put_line('Class B - ' || roundNo);
      7    A.printA(self);
      8   end;
      9  end;
    10  /
    &nbsp
    Type body created.
    &nbsp
    SQL> declare
      2   b1 b := b(1,2);
      3  begin
      4   b1.printMembers;
      5  end;
      6  /
    Class B - 2
    Class A - 1
    &nbsp
    PL/SQL procedure successfully completed.Rgds.

Maybe you are looking for