Calling API in PLSQL

Hi all,
I need to call existing API from pl/sql.
And i also need to know how can i create my own API.
My backend is oracle.
If u have any idea pls reply to [email protected]
Thanks in advance.
Sujatha

The & prefix is a client tool (SQL*Plus) feature for defining substitution variables - i.e. the client substitutes the contents of that variable prior to submitting that block of text (SQL statement or anonymous PL/SQL block) to the server. Other tools, like TOAD, emulates the features of SQL*Plus, such as substitution variables.
It is not a server-side feature. The only variables in SQL are bind variables - and these are well documented.
Make sure you get to grips with what is a client feature, what is a server feature, and where the boundary is between client and server. PL/SQL is not a client side language. Does not have access to client devices and peripherals. It cannot "prompt" for user supplied values - and no DBMS_OUTPUT does not print/write lines of text either.

Similar Messages

  • Problem In Calling API  fa_addition_pub.do_addition

    Hello friends,
    I am workin on the addition Of asset program
    In which i called API fa_addition_pub.do_addition
    but when i am executing it it gives me error
    Error(157,1): PLS-00306: wrong number or types of arguments in call to 'DO_ADDITION'
    Error(196,1): PLS-00201: identifier 'UPDATE_ERROR_MSG' must be declared
    THE CODE WHICH I USED IS GIVEN BELOW
    PLZ HELP ME TO SOLVE THIS PROBLEM.
    CREATE OR REPLACE PROCEDURE APPS.FA_ADDITION_API (p_row_number NUMBER) AS
    l_trans_rec fa_api_types.trans_rec_type;
    l_dist_trans_rec fa_api_types.trans_rec_type;
    l_asset_hdr_rec fa_api_types.asset_hdr_rec_type;
    l_asset_fin_rec_old fa_api_types.asset_fin_rec_type;
    l_asset_fin_rec fa_api_types.asset_fin_rec_type;
    l_asset_fin_rec_new fa_api_types.asset_fin_rec_type;
    l_asset_fin_mrc_tbl_new fa_api_types.asset_fin_tbl_type;
    l_asset_deprn_rec fa_api_types.asset_deprn_rec_type;
    l_asset_deprn_rec_new fa_api_types.asset_deprn_rec_type;
    l_asset_deprn_mrc_tbl fa_api_types.asset_deprn_tbl_type;
    l_asset_desc_rec fa_api_types.asset_desc_rec_type;
    l_asset_type_rec fa_api_types.asset_type_rec_type;
    l_asset_cat_rec fa_api_types.asset_cat_rec_type;
    l_asset_dist_rec fa_api_types.asset_dist_rec_type;
    l_asset_hierarchy_rec fa_api_types.asset_hierarchy_rec_type;
    l_inv_rec fa_api_types.inv_rec_type;
    l_inv_trans_rec fa_api_types.inv_trans_rec_type;
    l_period_rec fa_api_types.period_rec_type;
    l_who_rec fa_api_types.standard_who_rec_type;
    l_inv_tbl fa_api_types.inv_tbl_type;
    l_inv_rate_tbl fa_api_types.inv_rate_tbl_type;
    l_asset_dist_tbl fa_api_types.asset_dist_tbl_type;
    l_tax_book_tbl fa_cache_pkg.fazctbk_tbl_type;
    l_initial_book boolean := TRUE;
    CURSOR xx_addition_cur (p_row_number NUMBER)
    IS
    SELECT *
    FROM xx_reg_book_load_interface
    WHERE ROW_NUMBER = p_row_number;
    -- Get the inventory details for Asset Addition API
    CURSOR xx_dist_info_cur (p_asset_id NUMBER)
    IS
    SELECT fdh.*
    FROM fa_distribution_history fdh
    WHERE fdh.transaction_header_id_in = (SELECT MIN(transaction_header_id)
    FROM fa_transaction_headers fth
    WHERE fth.asset_id = p_asset_id
    AND fth.transaction_type_code in ('TRANSFER IN', 'TRANSFER IN/VOID') );
    -- AND transaction_header_id_in = p_transaction_id
    -- AND NVL (transaction_units, 1) > 0;
    -- Get the inventory details for Asset Adjustment API
    CURSOR xx_inv_rec_type_adj_cur (p_row_number NUMBER)
    IS
    SELECT fai.invoice_transaction_id_in, fai.deleted_flag,
    fai.invoice_number, fai.po_number, fai.unrevalued_cost,
    fai.project_id, fai.task_id, fai.payables_code_combination_id,
    fai.fixed_assets_cost, fai.source_line_id, fai.payables_cost,
    xrbli.transaction_type_code, fai.ap_distribution_line_number,
    fai.description, fai.po_vendor_id,
    fai.payables_units,
    fai.invoice_id,
    fai.invoice_date
    FROM fa_asset_invoices fai, xx_reg_book_load_interface xrbli
    WHERE fai.invoice_transaction_id_in = xrbli.invoice_transaction_id
    AND xrbli.ROW_NUMBER = p_row_number;
    -- Out parameter for Addition API
    l_return_status VARCHAR2 (1);
    -- Out parameter for Addition API
    l_mesg_count NUMBER := 0;
    -- Out parameter for Addition API and used for error tracking
    l_mesg VARCHAR2 (4000);
    -- Index for inventory record table
    l_dist_rec_count NUMBER := 0;
    l_inv_rec_count NUMBER := 0;
    l_stat_class VARCHAR2(50) ;
    BEGIN
    -- Open XX_ADDITION_CUR cursor by passing the period
    FOR p_asset_addition IN xx_addition_cur (p_row_number)
    LOOP
    -- ASSET_FIN_REC_TYPE Asset Structure
    l_asset_fin_rec.date_placed_in_service :=p_asset_addition.date_placed_in_service;
    l_asset_fin_rec.COST := p_asset_addition.COST;
    l_asset_fin_rec.depreciate_flag := 'YES'; -- YES for all the records
    -- Transaction Info
    /* BEGIN
    SELECT segment4
    INTO l_stat_class
    FROM fa_categories_b fcb
    WHERE fcb.category_id = p_asset_addition.asset_category_id ;
    EXCEPTION WHEN OTHERS THEN
    l_stat_class := NULL ;
    END ;
    IF ( NVL(l_stat_class,'*') = 'I' ) THEN
    l_trans_rec.transaction_subtype := 'AMORTIZED' ;
    END IF ;
    l_trans_rec.who_info := l_who_rec;
    -- ASSET_HDR_REC_TYPE Asset Structure (Asset ID should not be there for Addition API)
    l_asset_hdr_rec.book_type_code := p_asset_addition.book_type_code;
    -- ASSET_DESC_REC_TYPE Asset Structure
    l_asset_desc_rec.asset_number := p_asset_addition.asset_number;
    l_asset_desc_rec.description := p_asset_addition.description; ----modify by anand
    l_asset_desc_rec.current_units := p_asset_addition.current_units;
    l_asset_desc_rec.asset_key_ccid := p_asset_addition.asset_key_ccid;
    -- ASSET_TYPE_REC_TYPE Asset Structure
    l_asset_type_rec.asset_type := p_asset_addition.asset_type;
    -- ASSET_CAT_REC_TYPE Asset Structure
    l_asset_cat_rec.category_id := p_asset_addition.asset_category_id;
    -- Initialize the count
    l_inv_rec_count := 0;
    -- INV_REC_TYPE Invoice Structure
    FOR i IN xx_inv_rec_type_adj_cur (p_row_number)
    LOOP
    --IF l_asset_id_count p_asset_adjustment.asset_id THEN
    l_inv_rec_count := l_inv_rec_count + 1;
    l_inv_trans_rec.transaction_type := i.transaction_type_code;
    --l_inv_rec.source_line_id := i.source_line_id;
    l_inv_rec.fixed_assets_cost := i.fixed_assets_cost;
    l_inv_rec.payables_cost := i.payables_cost;
    l_inv_rec.payables_code_combination_id :=i.payables_code_combination_id;
    l_inv_rec.invoice_number := i.invoice_number;
    l_inv_rec.po_number := i.po_number;
    l_inv_rec.unrevalued_cost := i.unrevalued_cost;
    l_inv_rec.project_id := i.project_id;
    l_inv_rec.task_id := i.task_id;
    l_inv_rec.deleted_flag := i.deleted_flag;
    l_inv_rec.description := i.description;
    l_inv_rec.po_vendor_id := i.po_vendor_id;
    l_inv_rec.ap_distribution_line_number :=i.ap_distribution_line_number;
    l_inv_rec.payables_units := i.payables_units;
    l_inv_rec.invoice_id := i.invoice_id;
    l_inv_rec.invoice_date := i.invoice_date;
    l_inv_tbl (l_inv_rec_count) := l_inv_rec;
    --l_asset_id_count := p_asset_adjustment.asset_id;
    --END IF;
    END LOOP;
    -- ASSET_DIST_REC_TYPE and ASSET_DIST_TBL_TYPE Asset Structure
    FOR i IN xx_dist_info_cur (p_asset_addition.asset_id
    -- , p_asset_addition.transaction_header_id
    LOOP
    l_dist_rec_count := l_dist_rec_count + 1;
    -- l_asset_dist_rec.assigned_to := i.assigned_to;
    l_asset_dist_rec.units_assigned := i.units_assigned;
    l_asset_dist_rec.expense_ccid := i.code_combination_id;
    l_asset_dist_rec.location_ccid := i.location_id;
    l_asset_dist_tbl (l_dist_rec_count) := l_asset_dist_rec;
    END LOOP;
    -- Update to 0 for further use
    l_dist_rec_count := 0;
    --fnd_file.put_line(fnd_file.log, 'Calling the Addition API') ;
    -- Call Addition api
    fa_addition_pub.do_addition
    (p_api_version => 1.0,
    p_init_msg_list => fnd_api.g_false,
    p_commit => fnd_api.g_false,
    p_validation_level => fnd_api.g_valid_level_full,
    x_return_status => l_return_status,
    x_msg_count => l_mesg_count,
    x_msg_data => l_mesg,
    p_calling_fn => 'FA_ADDITION_API', ---modify by anand
    px_trans_rec => l_trans_rec,
    px_dist_trans_rec => l_dist_trans_rec,
    px_asset_hdr_rec => l_asset_hdr_rec,
    px_asset_desc_rec => l_asset_desc_rec,
    px_asset_type_rec => l_asset_type_rec,
    px_asset_cat_rec => l_asset_cat_rec,
    px_asset_hierarchy_rec => l_asset_hierarchy_rec,
    px_asset_fin_rec => l_asset_fin_rec,
    px_asset_deprn_rec => l_asset_deprn_rec,
    px_asset_dist_tbl => l_asset_dist_tbl,
    px_inv_tbl => l_inv_tbl,
    px_inv_rate_tbl => l_inv_rate_tbl
    --fnd_file.put_line(fnd_file.log, 'Addition API returned status as : '|| l_return_status) ;
    IF (l_return_status = fnd_api.g_ret_sts_success)
    THEN
    l_mesg_count := fnd_msg_pub.count_msg;
    IF l_mesg_count > 0
    THEN
    l_mesg :=CHR (10)|| SUBSTR (fnd_msg_pub.get (fnd_msg_pub.g_first,fnd_api.g_false),1,512);
    FOR i IN 1 .. (l_mesg_count - 1)
    LOOP
    l_mesg :=l_mesg|| CHR (10)|| SUBSTR (fnd_msg_pub.get (fnd_msg_pub.g_next,fnd_api.g_false),1,512);
    END LOOP;
    fnd_msg_pub.delete_msg ();
    END IF;
    l_mesg := 'FAILED (' || SQLERRM || '): ' || l_mesg;
    -- Procedure to update XX_REG_BOOK_LOAD_INTERFACE table with rejection reason
    update_error_msg ('Addition', l_mesg, p_asset_addition.ROW_NUMBER);
    ELSE
    -- Display the successful record
    fnd_file.put_line (fnd_file.output,p_asset_addition.asset_number|| ' -> '|| p_asset_addition.description|| ' for asset Addition Success.'); --- modify by anand
    END IF;
    -- Delete PLSQL table and record type variables data
    --empty_rec;
    END LOOP;
    END fa_addition_api;
    tahnk you

    You call do_addition with a wrong set of parameters or you use the wrong datatypes from your parameters.
    Check what parameters ( and their datatypes ) that procedure expects.
    Also check if you have the right privileges for using UPDATE_ERROR_MSG and that a synonym exists for it.
    fa_addition_pub.do_addition
    (p_api_version => 1.0,
    p_init_msg_list => fnd_api.g_false,
    p_commit => fnd_api.g_false,
    p_validation_level => fnd_api.g_valid_level_full,
    x_return_status => l_return_status,
    x_msg_count => l_mesg_count,
    x_msg_data => l_mesg,
    p_calling_fn => 'FA_ADDITION_API', ---modify by anand
    px_trans_rec => l_trans_rec,
    px_dist_trans_rec => l_dist_trans_rec,
    px_asset_hdr_rec => l_asset_hdr_rec,
    px_asset_desc_rec => l_asset_desc_rec,
    px_asset_type_rec => l_asset_type_rec,
    px_asset_cat_rec => l_asset_cat_rec,
    px_asset_hierarchy_rec => l_asset_hierarchy_rec,
    px_asset_fin_rec => l_asset_fin_rec,
    px_asset_deprn_rec => l_asset_deprn_rec,
    px_asset_dist_tbl => l_asset_dist_tbl,
    px_inv_tbl => l_inv_tbl,
    px_inv_rate_tbl => l_inv_rate_tbl
    );

  • Google API from plsql

    Hi,
    I have to post a file using this google API
    https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/uploads/uploadData#try-it
    How I will call this in PLSQL?
    thanks,
    7Z

    You're retrieving a text containing character entity references.
    UTL_I18N.UNESCAPE_REFERENCE will take care of getting back the original characters :
    SQL> set scan off
    SQL>
    SQL>
    SQL> SELECT utl_i18n.unescape_reference(
      2           REGEXP_SUBSTR(tr,'<span id=result_box class="short_text"><span[^>]*>(.*)</span></span>',1,1,'i',1)
      3         ) translated_value
      4  FROM (
      5    SELECT httpuritype('http://translate.google.com/?hl=en&layout=1&eotf=1&sl=en&tl='||'vi'||'&text='||
      6                                   UTL_URL.escape('My text to be converted')|| '#').getclob() tr
      7    FROM DUAL
      8  );
    TRANSLATED_VALUE
    Văn bản của tôi được chuyển đổi

  • ACE - unable to execute various show commands. Error: Called API timed out

    Hi I am runnng version A2(2.3)  on a HA ACE setup.
    I have noticed today that issuing various show commands such as 'show run' and 'show probe' on the active ACE have suddenly stopped working. On hitting return the ACE sits there for a while non respondant before finally outputting an Error: Called API timed out and then returning to the command prompt. It only seems to happen on show commands that would generate a lot of output, for example a 'show version' works. I have also noticed a delay sometimes in logging into the active ACE which has again only come to light today.
    We havent made any changes recently and this behavior has not been seen before.
    I could only find one similar posting which kind of suggested that a high logging level may be to blame for this issue, we are running at debugging level but have since the ACE's were brought into play over 12 months ago (yep i know logging at that level is far from ideal).
    Production traffic does not seem to be affected at present.
    Apart from reudcing the logging level I am not sure what else could be causing this issue, has anyone come across this one before?
    Unfortunaltey the 'show resource usgae in one of the commands that wont work'
    A 'show cpu'  command shows nothing above 10%
    Though multiple context are configured (3), the default resource allocation is in place between all three.
    Thanks for taking the time to read.

    Thanks for the response I will take a look at that Bug ID.
    In the end as you have already suggested above I ended up failing across to the standby ACE and powering down/up  the affected ACE module from the switch CLI. This seems to have restored all functionality. Even a soft reload command prior on the affected ACE didnt take affect.

  • ACE# sh script code - Error: Called API is invalid or non-existant

    What is this ??
    ACE# dir disk0:
       2846 Jun 14 2010 15:40:33 NORDICID_PROBE
    ACE# sh script code NORDICID_PROBE
    Error: Called API is invalid or non-existant
    Hardware is ACE-4710-K9 and software A3(2.7)
    The probe itself is functioning ok according to show probe detail.
    However show script script_name probe_name -counters all remain at zero for some reason. This wasn't the case on the previously use ACE software.
    To my recollection the command show script code has worked successfully before on the same ACE software. Not 100% sure though, but it definitely worked on the previous software we ran on the ACE.

    Hi Timo,
    You could be hitting CSCtu33866 (see
    http://tools.cisco.com/Support/BugToolKit/search/getBugDetails.do?method=fetchBugDetails&bugId=CSCtu33866 for more details)
    If you are really hitting this bug, a reboot should fix the issue.
    I hope this helps
    Daniel

  • ACE - Error: Called API encountered error

    Hello All,
    I was trying to add a ssl-proxy server to a policy map when I had this error message "Error: Called API encountered error".
    I'm running version A2(1.4a).
    did anyone encounter the same issue?
    Rgds,
    Thibault.

    The ACE uses an SSL proxy service in a Layer 7 policy map to load balance outbound SSL initiation requests to SSL servers. The ACE acts as an SSL client sending an encrypted request to an SSL server. For more information about SSL initiation, see the Cisco Application Control Engine Module SSL Configuration Guide.
    To specify an SSL proxy service in a policy map, use the ssl-proxy command in policy map load-balancing class configuration mode. The syntax of this command is as follows:
    ssl-proxy client name
    The name argument is the identifier of an existing SSL proxy service. Enter an unquoted text string with no spaces and a maximum of 64 alphanumeric characters.
    For example, enter:
    host1/Admin(config-pmap-lb-c)# ssl-proxy client PROXY_SERVICE1
    To remove the SSL proxy service from the policy map, enter:
    host1/Admin(config-pmap-lb-c)# no ssl-proxy client PROXY_SERVICE1

  • Calling API mtl_online_transaction_pub.process_online from Trigger

    Hello Gurus,
    I'm inserting rows into mtl_transaction_interface table and calling mtl_online_transaction_pub.process_online to process it from a TRIGGER on mtl_material_transactions table.
    But it doesn't process the data and errors with process_flag 3.
    If I comment the call to mtl_online_transaction_pub.process_online and just insert into interface table and then call mtl_online_transaction_pub.process_online from independent PLSQL block it works fine.
    Can someone suggest a solution for the problem, I think the issue is in the design.
    Thanks
    Manu

    Hi,
    I hope you are using an 'after insert' trigger on mtl_transactions_interface.
    Ensure that the MTI record is populated with transaction_header_id with transaction_mode = 1 (Online), process_flag = 1 and lock_flag = 2.
    Call the txn processor with transaction_header_id, and it should work.
    If transaction_mode is 2 (immediate) or 3 (Background) then the MTI record must be commited in database; calling txn processor from trigger cannot see the record as it is not committed.
    If it doesn't work, then you will have to retrieve errors from the return message to understand the problem in detail.
    I would strongly recommend not to use trigger for such processing.
    I believe, you have a custom package/procedure from which you are inserting data into MTI.
    once the insert is done, then you can call the same API from custom code.
    Also check how exactly is MTI is getting inserted, is apps context set correctly (either by means of concurrent program, or by explicitly calling fnd_global.apps_initialize(..) )
    If it still doesnt work, enable Inventory Debug by setting up profiles INV%DEBUG%, and see the log messages. (e.g. set the log file as /usr/tmp/mti.log )
    Hope it helps,

  • Host call API?

    Hi,
    I want to make a call from PLSQL to an OS command. I know I can use the normal methods of dbms_pipe, java call, etc. But I was curious if there was an 11i api that I could use to accomplish this?
    Thanks in advance!

    embed your pl/sql script in the unix script. Register as a concurremnt program, as executable Host.
    get use of some of 11i API's.
    Check out:
    http://www.oracleappshub.com/api/oracle-api-availability-concurrent-program/
    http://www.oracleappshub.com/aol/4-steps-for-host-based-concurrent-program/

  • In .jar file how can I call API's of other .Jar file

    Hi all,
    I have created a "MyApplication.jar" file that dose not need any other .jar file Like xercesImpl.jar thne it is working fine.
    but If I make the .jar file of application that needs xercesImpl.jar API's
    of this .jar file then how I can call that xercesImpl.jar in my Application.jar newly created.
    please help me
    Thanks in advance.

    either add the other jar file to your classpath or do the following (taken from http://javaalmanac.com/egs/java.lang/LoadClass.html)
    e68. Loading a Class That Is Not on the Classpath
    A URLClassLoader can be used to load classes in any directory.
        // Create a File object on the root of the directory containing the class file
        File file = new File("c:\\myclasses\\");
        try {
            // Convert File to a URL
            URL url = file.toURL();          // file:/c:/myclasses/
            URL[] urls = new URL[]{url};
            // Create a new class loader with the directory
            ClassLoader cl = new URLClassLoader(urls);
            // Load in the class; MyClass.class should be located in
            // the directory file:/c:/myclasses/com/mycompany
            Class cls = cl.loadClass("com.mycompany.MyClass");
        } catch (MalformedURLException e) {
        } catch (ClassNotFoundException e) {
        }

  • Remote SAP function call from a plsql procedure

    Hi,
    How i can call a remote SAP function from a plsql procedure?
    Thnaks in advance:
    Bianca

    I don't see any relation to Oracle Forms in this question. Is there any? If so, can you specify what you want to do, and the version numbers of Forms and databases involved?
    And what does a call to a remote SAP procedure look like? Is it a DB procedure in an Oracle database? Then you can simply use a database link to the SAP database.

  • How to call jsp in PLSQL code (to upload a file in IFS)

    Hello,
    We develop our PORTAL (9.0.2) with PL/SQL way.
    We want to make a form to upload file in IFS.
    We create a form like that :
    htp.formOpen(cmethod =>'post',
         cenctype => 'multipart/form-data',
         curl => '/pls/ptlcollab/ptlcollab.GestionDoc_screenbuilder.manipTableIFS',
         cattributes => 'name="ifs"') ;
    htp.TableData(htf.FORMFILE(cname=>'file', cattributes => 'size="25"')) ;
    The manipTableIFS procedure calls a loaded java procedure which called a servlet which work with IFS.
    BUT, modplsql seems to want we directly upload the doc in a table but we want to upload the doc in iFS !!!
    So, the solutiuon seems to call a jsp (or a servlet directly from our plsql code).
    BUT, how could I do that ???
    Any help would be greatly appreciated.
    Regards.
    Luc.

    Something along these lines ought to do what you want:
    <html>
    <body>
    <form name='foobar' action='foobar.jsp'>
    <script language='Javascript'>
    function askim() {
      if (confirm('Is you sure?')) {
        document.foobar.submit();
      } else return false;
    </script>
    <input type='button' value='Submit' onClick='askim()'>
    </form>
    </body>
    </html>
    Your mileage may vary.
    But the idea here is that the Javascript merely submits the form if the user clicks "OK" on the confirmation pop-up. Otherwise, nothing happens. The form is submitted to a JSP file which accepts the request, does something (such as call your Java class), then prints out some HTML in response.

  • Call from Java Plsql Procedure with VArray as Out Parameter

    Hi,
    I have a Java web application(Tomcat server) that call a plsql procedure with Varray as OUT parameter.
    The Plsql code is perfectly compiled.
    When i run the application, I get the following error msg in my Tomcat window:
    java.sql.SQLException: ORA-06530: Reference to uninitialized composite
    ORA-06512: at "SEMS1.PACK_SEMSADMIN_OFFEREDJOBS", line 102
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:109
    3)
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
    {color:#0000ff}
    Doubt: Do I need to declare ArrayDescriptors to retrieve the VArray from the Plsql procedure.
    I think the below statement is enough; we need ArrayDescriptors only when we we wish to send a Plsql Object or Varray from Java code to the procedure. Plz correct me if not so.
    dbCallableStatement.execute();
    ARRAY SimpleOUTArray = (ARRAY) ((OracleCallableStatement) dbCallableStatement).
    getObject(Integer.parseInt(arlParameterOutIndex.get(i).toString()));{color}
    I am unable to realize where the mistake is?
    {color:#800000}
    {color}{color:#800000}
    VARRAY AND PROC DETAILS:
    TYPE STRUCT_JOB_DETAILS AS OBJECT
    APPL_NO NUMBER (10),
    S_FNAME VARCHAR2 (32 Byte),
    S_MI VARCHAR2 (32 Byte),
    S_LNAME VARCHAR2 (32 Byte),
    APPL_DATE DATE,
    DESCRIPTION VARCHAR2 (100 Byte),
    S_UCID VARCHAR2 (8 Byte)
    TYPE VARRAY_JOB_DETAILS IS VARRAY(100) OF STRUCT_JOB_DETAILS;{color}
    {color:#800000}PROCEDURE:{color}
    {color:#800000}CREATE OR REPLACE PACKAGE PACK_SEMSADMIN_OFFEREDJOBS
    AS
    TYPE Generic_Cursor_Type IS REF CURSOR;
    --TYPE varray_job_detail is VARRAY(100) OF STRUCT_JOB_DETAILS;
    --va_varray_job_detail varray_job_detail := varray_job_detail();
    va_varray_job_detail VARRAY_JOB_DETAILS := VARRAY_JOB_DETAILS();
    PROCEDURE Admin_Jobs_Offered_Rtr
    ic_status IN VARCHAR2,
    or_offered_jobs OUT Generic_Cursor_Type,
    va_varray_job_detail OUT VARRAY_JOB_DETAILS
    CREATE OR REPLACE PACKAGE BODY PACK_SEMSADMIN_OFFEREDJOBS
    AS
    PROCEDURE Admin_Jobs_Offered_Rtr
    ic_status IN VARCHAR2,
    or_offered_jobs OUT Generic_Cursor_Type,
    va_varray_job_detail OUT VARRAY_JOB_DETAILS
    AS
    vc_query VARCHAR2(15000) := '';
    vc_query_1 VARCHAR2(15000) := '';
    counter NUMBER := 1;
    vc_no NUMBER := 0;
    or_applicants_list Generic_Cursor_Type;
    TYPE type_appln_list IS RECORD
    job_no NUMBER(10),
    job_title VARCHAR2(50 BYTE),
    account_no VARCHAR2(10 BYTE),
    head_fname VARCHAR2(32 BYTE),
    head_minitial VARCHAR2(10 BYTE),
    head_lname VARCHAR2(32 BYTE),
    num NUMBER
    vn_appln_list type_appln_list;
    TYPE type_job_offered IS RECORD
    APPL_NO NUMBER (10),
    S_FNAME VARCHAR2 (32),
    S_MI VARCHAR2 (32),
    S_LNAME VARCHAR2 (32),
    APPL_DATE DATE,
    DESCRIPTION VARCHAR2 (100),
    S_UCID VARCHAR2 (8)
    vn_job_offered type_job_offered;
    BEGIN
    vc_query := vc_query || ' SELECT jobs.job_no,job_title, account_no, head_fname, head_minitial, head_lname, num';
    vc_query := vc_query || ' FROM jobs, ( ' ;
    vc_query := vc_query || ' SELECT jobs.job_no,count(*) as num' ;
    vc_query := vc_query || ' FROM student_apps ,jobs ' ;
    vc_query := vc_query || ' WHERE jobs.job_no = student_apps.job_no' ;
    vc_query := vc_query || ' AND (student_apps.status in (''o'',''t'')) '; --|| ic_status || ')' ;
    vc_query := vc_query || ' AND jobs.status not in (''z'', ''Z'')' ;
    vc_query := vc_query || ' GROUP BY jobs.job_no' ;
    vc_query := vc_query || ' ) no_apps_off' ;
    vc_query := vc_query || ' WHERE jobs.job_no = no_apps_off.job_no' ;
    dbms_output.put_line('Executed Query_1');
    va_varray_job_detail := VARRAY_JOB_DETAILS();
    va_varray_job_detail.extend(100);
    OPEN or_offered_jobs FOR vc_query;
    LOOP
    FETCH or_offered_jobs INTO vn_appln_list;
    EXIT WHEN or_offered_jobs%NOTFOUND;
    vc_query_1 := '';
    vc_query_1 := vc_query_1 || ' SELECT stud_apps.appl_no APPL_NO, stud_apps.s_fname S_FNAME, ';
    vc_query_1 := vc_query_1 || ' stud_apps.s_mi S_MI, stud_apps.s_lname S_LNAME, ';
    vc_query_1 := vc_query_1 || ' stud_apps.appl_date APPL_DATE, look_up.description DESCRIPTION, ' ;
    vc_query_1 := vc_query_1 || ' stud_apps.s_ucid S_UCID ' ;
    vc_query_1 := vc_query_1 || ' FROM student_apps stud_apps,jobs jbs,lookup look_up' ;
    vc_query_1 := vc_query_1 || ' WHERE stud_apps.status in (''o'',''t'') '; --(' || ic_status || ') ' ;
    vc_query_1 := vc_query_1 || ' AND jbs.job_no = stud_apps.job_no' ;
    vc_query_1 := vc_query_1 || ' AND jbs.status not in (''z '', ''Z'')' ;
    vc_query_1 := vc_query_1 || ' AND stud_apps.status = look_up.code ' ;
    vc_query_1 := vc_query_1 || ' AND look_up.type = ''st''' ;
    vc_query_1 := vc_query_1 || ' AND stud_apps.job_no = ''' || vn_appln_list.job_no || ''' ' ;
    vc_query_1 := vc_query_1 || ' ORDER BY appl_date' ;
    dbms_output.put_line('Executed Query_2');
    OPEN or_applicants_list FOR vc_query_1;
    LOOP
    FETCH or_applicants_list INTO vn_job_offered;
    EXIT WHEN or_applicants_list%NOTFOUND;
    va_varray_job_detail(counter).APPL_NO := vn_job_offered.APPL_NO;
    va_varray_job_detail(counter).S_FNAME := vn_job_offered.S_FNAME;
    va_varray_job_detail(counter).S_MI := vn_job_offered.S_MI;
    va_varray_job_detail(counter).S_LNAME := vn_job_offered.S_LNAME;
    va_varray_job_detail(counter).APPL_DATE := vn_job_offered.APPL_DATE;
    va_varray_job_detail(counter).DESCRIPTION := vn_job_offered.DESCRIPTION;
    va_varray_job_detail(counter).S_UCID := vn_job_offered.S_UCID;
    counter := counter + 1;
    END LOOP; --end of FOR
    CLOSE or_applicants_list;
    END LOOP; -- end of FETCH
    END Admin_Jobs_Offered_Rtr;
    END PACK_SEMSADMIN_OFFEREDJOBS;
    /{color}
    Reqire help plzzzz !!!
    Thanks.

    Originally posted by JDBC Development Team:
    It's very similar to other datatype except that it uses OracleTypes.ARRAY typecode and the value is mapped to a oracle.sql.ARRAY instance. The code looks as follows --
    cstmt.registerOutParameter (idx, OracleTypes.ARRAY, "VARRAY_TYPE_NAME_HERE");
    cstmt.execute ();
    ARRAY array = (ARRAY) cstmt.getObject (idx);
    Thanks for your reply.
    I have to use:-
    OracleCallableStatement cs1 = (OracleCallableStatement )conn.prepareCall
    ( "{call proj_array(?)}" ) ;
    for retrieving a collection as an OUT parameter.
    This gives me the errors:-
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Blob getBlob(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Array getArray(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Clob getClob(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Ref getRef(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    How do I get rid of these errors?
    null

  • Calling API from Microsoft exchange on new user add

    Whenever a new user is added on exchange I need to make an API call.
    These users are to be also added on a custom application server which can accept a simple REST call

    Hello,
    You can consider EWS:
    http://msdn.microsoft.com/en-us/library/office/gg274403(v=exchg.80).aspx
    Thanks,
    Simon Wu
    TechNet Community Support

  • Calling JavaServlet from PLSQL cartridge

    Could I call a Java procedure from a PLSQL Proc using Cartridges?

    Hi Justin,
    I have a similar requirement where I need to call a java method from PL/SQL code.
    Basically we are developing an application using Oracle Apex where we pass the encrypted cookie content to this java method as a parameter and it returns the decrypted cookie content. Using the decrypted cookie info I would handle the authorization in my Apex application.
    My company has standardized the cookie encryption/decryption method and thats what the security team provided me with 2 jar files which I am supposed to setup in class path. In one of this .jar files there is a .class file called GateKeeper.class.The whole cookie decryption code is in a method called 'decrypt_cookie' in the class file. Security team has provided me a sample call to this method using java as below :
    <%@ page language="java" import="GateKeeper.*, java.util.*, java.io.*, java.net.*"%> …
    String retString = GateKeeper.decrypt_cookie(secCookie);
    All I need to do is call this piece of code from PL/SQL by passing the cookie value as a parameter, but not sure how to do it.
    Following is the code I am using to capture cookie values coming from the browser.
    DECLARE
       c     owa_cookie.cookie;
    BEGIN
       c := owa_cookie.get ('secCookie');
       :P101_TXT_BOX := c.vals (1);
    EXCEPTION
       WHEN OTHERS
       THEN
         NULL;
    END;Can you explain what you mean by your point (2) "Java code can be declared as an external procedure in Oracle".
    I am thinking for my situation your point (3) can be one of the solutions where I would load a java class into database which in turn would call GateKeeper.
    Please suggest.
    Thanks in advance.
    -Raj.

  • Calling Program from Plsql

    Hi all,
    How can i call another program from a plsql code.
    For example opening a notepad in windows from plsql code.
    Please give detailed explanation
    Thanks
    Akshat

    If the purpose is scheduling external programs, the best way would be to use the Oracle Scheduler.
    [url http://docs.oracle.com/cd/E11882_01/server.112/e25494/schedover.htm#i1106753]Chapter 28, [url http://docs.oracle.com/cd/E11882_01/server.112/e25494/scheduse.htm#i1033533]Chapter 29 and [url http://docs.oracle.com/cd/E11882_01/server.112/e25494/schedadmin.htm#i1007589]Chapter 30 in the Administrator's Guide.
    Particularly [url http://docs.oracle.com/cd/E11882_01/server.112/e25494/scheduse002.htm#CIAJCFHE]Techniques for external jobs.
    Scheduler jobs is the best way, because security is built into the system - you can use proper O/S credentials, grant rights, etc.
    Manually calling external jobs from PL/SQL is not as easy. It is possible using for example some Java stored procedure, but it is more difficult to ensure security - it can too easily open up for your database users to execute too many possible O/S commands ;-)
    Edit:
    PS: Tim Hall shows some examples of Scheduler usage [url http://www.oracle-base.com/articles/10g/Scheduler10g.php]here - one of the examples is calling a shell script (unix lingo for batch job ;-) )
    Edited by: Kim Berg Hansen on Nov 30, 2011 12:56 PM

Maybe you are looking for

  • Iphone 4 - updated it to ios6 - voice memos deleted

    i have an iphone 4 and i updated it to ios6 without itunes and now all of my voice memos deleted, any one have the same problem? and what can i do? i don't have any back up from my voice memos. thank you

  • How to compile a Form in Unix

    Dear all I am using forms 10G. I have a form and I want to compile it in Unix . Can you please tell me the solution step by step . I was reading the old blogs here ,and tried the same but did not get the solution . Please help me .

  • UTF-8 to UTF-16

    Hi, Currently XI is pushing the data to Siebel in UTF-8. But Siebel wants only in UTF-16 format. How can I change this in XI. Thanks Sudheer

  • Design Guidelines

    Hi, is there a kind of document "Design Guidelines" like e.g. Java Look and Feel Design Guidelines ? Michel

  • HT1688 So i realized that I deleted the standard Clock App on my

    I realized that I accidentally deleted the standard Clock App from my iphone..I was not aware that this app could even be deleted but one day, it was no longer on my phone! How can i get this app back?