Passing parameter to procedure in apackage

Hi All,
I have a doubt regarding the parameter we pass in the procedure of a package.
There is a package with the name pack1. pack1 is havina procedure called proc1 which is have 3 parameter like
proc1(p_name,p_dob,pack1.fn1(p_dob)) where fn1 is the function defined in the package which calculate the age of the person. Can I pass the parameter like
proc1(p_name,p_dob,'Age of the employee'||pack1.fn1(p_dob)). Actually I can append this inside the function only but I want to explicitily call this procedure two places with 2 diff parameters like once:
proc1(p_name,p_dob,'Age of the employee'||pack1.fn1(p_dob))
and second time like
proc1(p_name,p_dob,'Age of the manager'||pack1.fn1(p_dob))
Is this possible to pass the parameters like this.
Thanks.
Edited by: user12841217 on Apr 6, 2010 4:08 AM

Provided that:
the third parameter is some kind of string datatype or a type that can be implicitly converted from string
the third parameter is declared as IN only
..then it will work
Oracle will run the function, get its output, append to to the string, creating a new string and pass the new string into the procedure
If the third parameter has an OUT modifier, you must store the text 'Age of the xXX '||fnwhatever() in a variable, then pass the variable name before you call the procedure, or you'll get an error something like "proc1 has out arguments"

Similar Messages

  • Error while pass parameter to procedure....

    We have developed procedure with parameter ORG_ID (Number) then create executable and define program. When we execute this executable and pass ORG parameter, we get following error, pl help in this regard:
    Data type of parameter and column is same
    Cause: FDPSTP failed due to ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'COST_ELEMENT_UPDATION_CUST'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    procedure works in pl/sql developer but when we define as "PL/SQL Stored Procedure" in application it prompt error.
    CREATE OR REPLACE PROCEDURE Cost_Element_Updation_Cust(P_ORG IN number) IS
    --P_ORG NUMBER(10) := 91;
    BEGIN
    --FOR 1PP ORG, for average costing header line
    INSERT INTO CST_ITEM_COSTS
    SELECT M.INVENTORY_ITEM_ID,
    M.ORGANIZATION_ID,
    C.COST_TYPE_ID,
    SYSDATE,
    C.LAST_UPDATED_BY,
    SYSDATE,
    C.CREATED_BY,
    C.LAST_UPDATE_LOGIN,
    C.INVENTORY_ASSET_FLAG,
    C.LOT_SIZE,
    C.BASED_ON_ROLLUP_FLAG,
    C.SHRINKAGE_RATE,
    C.DEFAULTED_FLAG,
    C.COST_UPDATE_ID,
    C.PL_MATERIAL,
    C.PL_MATERIAL_OVERHEAD,
    C.PL_RESOURCE,
    C.PL_OUTSIDE_PROCESSING,
    C.PL_OVERHEAD,
    C.TL_MATERIAL,
    C.TL_MATERIAL_OVERHEAD,
    C.TL_RESOURCE,
    C.TL_OUTSIDE_PROCESSING,
    C.TL_OVERHEAD,
    C.MATERIAL_COST,
    C.MATERIAL_OVERHEAD_COST,
    C.RESOURCE_COST,
    C.OUTSIDE_PROCESSING_COST,
    C.OVERHEAD_COST,
    C.PL_ITEM_COST,
    C.TL_ITEM_COST,
    C.ITEM_COST,
    C.UNBURDENED_COST,
    C.BURDEN_COST,
    C.ATTRIBUTE_CATEGORY,
    C.ATTRIBUTE1,
    C.ATTRIBUTE2,
    C.ATTRIBUTE3,
    C.ATTRIBUTE4,
    C.ATTRIBUTE5,
    C.ATTRIBUTE6,
    C.ATTRIBUTE7,
    C.ATTRIBUTE8,
    C.ATTRIBUTE9,
    C.ATTRIBUTE10,
    C.ATTRIBUTE11,
    C.ATTRIBUTE12,
    C.ATTRIBUTE13,
    C.ATTRIBUTE14,
    C.ATTRIBUTE15,
    C.REQUEST_ID,
    C.PROGRAM_APPLICATION_ID,
    C.PROGRAM_ID,
    C.PROGRAM_UPDATE_DATE,
    C.ROLLUP_ID,
    C.ASSIGNMENT_SET_ID
    FROM APPS.CST_ITEM_COSTS C, APPS.MTL_SYSTEM_ITEMS_B M
    WHERE C.INVENTORY_ITEM_ID =
    (SELECT ITEM_ID FROM IFL.COST_ELEMENT_CUST WHERE ORG_ID = P_ORG) AND
    C.ORGANIZATION_ID = P_ORG AND C.COST_TYPE_ID = 1002 AND
    M.SEGMENT3 = 'IMPORTED' AND
    M.SEGMENT1 IN ('F ASSET', 'SPARES', 'TOOLS', 'STORES') AND
    M.ORGANIZATION_ID = P_ORG
    --AND M.INVENTORY_ITEM_ID=154540
    --Get item from cost which are pending for costing
    AND M.INVENTORY_ITEM_ID NOT IN
    (SELECT DISTINCT INVENTORY_ITEM_ID
    FROM apps.CST_ITEM_COST_DETAILS_V
    WHERE COST_TYPE_ID = 1002 AND ORGANIZATION_ID = P_ORG);
    COMMIT;
    END Cost_Element_Updation_Cust;

  • How to pass parameter from 1 stored procedure to another stored procedure inside crystal report

    Hi
    I have several stored procedure in my Crystal Report. I am wondering if it is possible for me to pass a parameter to one of the stored procedure and to use the result of that stored procedure E.g. CustomerCode. To another 2 stored procedure to generate the report dynamically?
    I have 3 stored procedure
    The 1st one is used to gather information and process the calculation
    another 2 stored procedure is used for generate the graph and both of them required to take 2 parameters. The 1st stored procedure will require 1 parameter (E.G. Reference Code) and will return a set of information including the data that could be use on the other 2 stored procedures.
    After I added these 2 stored procedure, it requires me to pass 3 parameters to the report. I would like to know if I could only pass the Reference Code for stored procedure 1 and use it to retrieve the information for the other 2 parameter?
    Thanks in advance
    Chi

    Hi Chi
    To pass parameter from 1 stored procedure to another stored procedure, you will have to create sub report. In your case you will have to create 2 sub reports for 2nd and 3rd stored procedure and link those sub reports with the main report using Reference Code field in order to pass the values.
    After creating the report when you will refresh the report, it will ask 4 parameters, one parameter for main report, one for the first subreport and two for second subreport to fetch the data correctly.
    Regards
    Poonam Thorat.

  • Unable to pass parameter in oracle procedure through unix shell script

    Hi Experts,
    I have oracle procedure where in I have to pass the value of procedure parameter through unix script.
    Follwoing is the sample procedure which i tried to exceute from the unix.
    Procedure:
    create or replace procedure OWNER.PRC_TESTING_OWNER(OWNER IN VARCHAR2) AS
    sql_stmt varchar2(1000) := NULL;
    v_count number := 0;
    v_owner varchar2(100) := owner;
    begin
    sql_stmt:='select count(1) from '||v_owner||'.EMP@infodb where rownum<=10';
    execute immediate sql_stmt into v_count;
    DBMS_OUTPUT.PUT_LINE(sql_stmt);
    DBMS_OUTPUT.PUT_LINE(v_count);
    END;The script which I used is:
    Unix
    #!/bin/ksh
    parm=$1
    echo start
    sqlplus -s scott@DEV/tiger <<EOF >>result_1.txt
    set serveroutput on;
    select '$parm' from dual;
    exec owner.PRC_TESTING_OWNER('$parm');
    EOFThe script is working fine that is i am able to pass to parameter value through unix shell script. :)
    But if I want to pass the value of the owner in cursor , I am unable to pass this value through unix.
    Following the procedure which i am trying to implement.
    create or replace procedure OWNER.PRC_TESTING_OWNER(OWNER IN VARCHAR2) IS
    v_owner varchar2(100) := owner;
    CURSOR main_cur IS 
      select
      i.ROWID  rid ,
      emp_name,
      deptid
      from v_owner.employee;
    CURSOR subset_cur(c_deptid NUMBER ) IS
        SELECT *
          FROM v_owner.DEPT d
          where  d.dept_id=c_deptid;
    --##main loop     
    FOR i IN main_cur LOOP
          FOR j IN subset_cur(i.deptid) LOOP     
    BEGIN
    insert into v_owner.RESULT_TABLE
    END;
    END LOOP;
    END LOOP;How can i pass parameter value of the stored procedure through unix script(that is "owner" in this case), when these parameter value is
    used in cursor? :(
    Can anybody help me regarding the same?
    Thanks in Advance !! :D

    It's not the parameter in the cursor that is the problem, it's that you are trying to use static SQL for something that won't be known until run time (the owner of the table).
    You would need to use something like ...
    declare
       l_owner        varchar2(30) := 'SCOTT';
       l_ref_cursor   sys_refcursor;  
       type l_ename_tab is table of scott.emp.ename%type;
       l_ename_array  l_ename_tab;
    begin
       open l_ref_cursor for
          'select ename
          from ' || l_owner || '.emp';
       loop
          fetch l_ref_cursor bulk collect into l_ename_array limit 10;
          exit when l_ename_array.COUNT = 0;
          for x in 1 .. l_ename_array.count
          loop
             dbms_output.put_line(l_ename_array(x));
          end loop;
       end loop;
       close l_ref_cursor;
    end;
    SMITH
    ALLEN
    WARD
    JONES
    MARTIN
    BLAKE
    CLARK
    SCOTT
    KING
    TURNER
    ADAMS
    JAMES
    FORD
    MILLER
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01

  • How to assign Values to nested table and pass as parameter to procedure?

    How to assign Values to nested table and pass as parameter to procedure?
    Below is the Object and its type
    create or replace type test_object1 as object
    val1 varchar2(50),
    val2 varchar2(50),
         val3 varchar2(50)
    create or replace type test_type1 is table of test_object1;
    create or replace type test_object2 as object
    val1 varchar2(50),
    val2 varchar2(50),
         val3 varchar2(50)
    create or replace type test_type2 is table of test_object2;
    GRANT ALL ON test_object1 TO PUBLIC;
    GRANT ALL ON test_type1 TO PUBLIC;
    GRANT ALL ON test_object2 TO PUBLIC;
    GRANT ALL ON test_type2 TO PUBLIC;
    here is the table made of object type:
    create table test_object_tpe
    sl_num NUMBER,
    description VARCHAR2(100),
    main_val1 test_type1,
    main_val2 test_type2
    NESTED TABLE main_val1 STORE AS tot1
    NESTED TABLE main_val2 STORE AS tot2;
    here is the procedure which inserts values into nested table:
    PROCEDURE INSERT_TEST_DATA(sl_num IN NUMBER,
    description IN VARCHAR2,
    p_main_val1 IN test_type1,
    p_main_val2 IN test_type2
    IS
    BEGIN
    FOR rec in p_main_val1.first..p_main_val1.last
    LOOP
    INSERT INTO xxdl.test_object_tpe
    sl_num,
    description,
    main_val1,
    main_val2
    VALUES
    sl_num
    ,description
    ,test_type1 (test_object1(
    p_main_val1(rec).val1,
                                       p_main_val1(rec).val2,
    p_main_val1(rec).val3
    ,test_type2 (test_object2( p_main_val2(rec).val1,
                        p_main_val2(rec).val2,
                        p_main_val2(rec).val3
    END LOOP;
    commit;
    END INSERT_TEST_DATA;
    here is the anonymoys block which assigns values to the object type and pass values into the procedure:
    set serveroutput on;
    declare
    p_sl_num NUMBER := 1001;
    p_description VARCHAR2(50) := 'Testing Val1';
    inval1 test_type1 := test_type1();
    inval2 test_type2 := test_type2();
    begin
    inval1(1).val1 := 'testx1';
    inval1(1).val2 := 'testx2';
    inval1(1).val3 := 'testx3';
    inval2(1).val1 := 'testy1';
    inval2(1).val2 := 'testy2';
    inval2(1).val3 := 'testy3';
    CSI_PKG.INSERT_TEST_DATA(sl_num => p_sl_num,
    description => p_description,
    p_main_val1 => inval1,
    p_main_val2 => inval2
    end;
    Can anybody correct me.
    Thanks,
    Lavan

    Thanks for posting the DDL and sample code but whenever you post provide your 4 digit Oracle version (result of SELECT * FROM V$VERSION).
    >
    How to assign Values to nested table and pass as parameter to procedure?
    >
    Well you are doing almost everything wrong that could be done wrong.
    Here is code that works to insert data into your table (the procedure isn't even needed).
    declare
    p_sl_num NUMBER := 1001;
    p_description VARCHAR2(50) := 'Testing Val1';
    inval1 test_type1 := test_type1();
    inval2 test_type2 := test_type2();
    begin
    inval1.extend();
    inval1(1) := test_object1('testx1', 'testx2', 'testx3');
    inval2.extend();
    inval2(1) := test_object2('testy1', 'testy2', 'testy3');
    INSERT INTO test_object_tpe
    sl_num,
    description,
    main_val1,
    main_val2
    VALUES
    (p_sl_num, p_description, inval1, inval2);
    commit;
    end;
    /See Example 5-15 Referencing a Nested Table Element in Chap 5 Using PL/SQL Collections and Records in the PL/SQL doc
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/collections.htm#CJABEBEA
    1. You don't even need the procedure since all it does is a simple INSERT into the table which you can do directly (see my code above)
    inval1(1).val1 := 'testx1';There is no element one (1) of 'inval1' since you haven't created any elements yet. You need to EXTEND the collection to add an element
    inval1.extend();And then there is an empty element but 'inval1' is a container for objects of type 'test_object1' not for scalars like 'val1', 'val2', and 'val3'.
    So you can't do
    inval1(1).val1 := 'testx1';You have to create an instance of 'test_object1'
    inval1(1) := test_object1('testx1', 'testx2', 'testx3');And so on for the other collection
    You don't need the procedure (as my sample code shows) but once you populate the variables properly it will work.

  • "Missing parameter values " when passing parameter to subreport

    i have a subreport embedded in main report.
    sub report take a procedure with parameter.the main report does nothing but only holds many sub report.now i have to pass parameter from code to sub report.ive used the following code but it gives "missing parameter values" error
    Any help??
       ParameterField paramField = new ParameterField();
            ParameterFields paramFields = new ParameterFields();
            ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
            paramField.Name = "@LabNo";
            paramDiscreteValue.Value = "1034";
            paramFields.Add(paramField);
            ParameterValues paramvalues = new ParameterValues();
           paramvalues.Add(paramDiscreteValue);
            paramField.CurrentValues.Add(paramDiscreteValue);
    rptDocument.ParameterFields[0].CurrentValues = paramvalues;

    does the sub report have parameters in it as well?
    if the sp used for the sub report has parameters you need to pass them to the sub. i would probably remove the parameters from the sub and join the sub to the main by the parameter from the main to the field in the sub.

  • Passing parameter in a method

    hi i have a situation where i have to pass parameter to my method i don't what to pass the parameter define from the viewO because am not using parameter to query from the view,i just what to pass it to my procedure,my method is
                    public void submit_agr(String par_id,String dref_id,String tas_id,String agr_id){
                        ViewObject sub = this.findViewObject("AGR1");
                      i don't what to use this-> sub.setNamedWhereClauseParam("tas_id", tas_id); the tas_id is not in AGR1 VIEWO
                      // sub.
                        sub.executeQuery();
                        Row row = sub.first();
                        par_id = (String)row.getAttribute("par_id");
                        agr_id = (String)row.getAttribute("id");
                        callPerformSdmsLogon("SMS_FORM_TO_ADf.delete_agr(?)", new  Object[] {par_id,dref_id,tas_id,agr_id});
                    }

    i try this AM IN jDEVELOPER 11.1.2.1.0
                    public void submit_agr(String par_id,String dref_id,String tas_id,String agr_id){
                        ViewObject sub = this.findViewObject("AGR1");                 
                        Row row = sub.first();
                        sub.setNamedWhereClauseParam("tas_id", new Number(10));-how will i pass this to my procedure
                        sub.setNamedWhereClauseParam("dref_id", new Number(10));-how will i pass this to my procedure
                        par_id = (String)row.getAttribute("par_id");
                        agr_id = (String)row.getAttribute("id");
                        sub.executeQuery();
                        callPerformSdmsLogon("SMS_FORM_TO_ADf.delete_agr(?)", new  Object[] {par_id,dref_id,tas_id,agr_id});
                    }how will i pass the two prameter to my procedure
    Edited by: Tshifhiwa on 2012/07/01 3:14 PM

  • Pass parameter to another block

    I try to pass parameter to another block. but i have error message.
    error:PL/SQL: ORA-00904: "C1DATA_REF"."c": invalid identifier.
    Would you help me?
    ___________________________+++my code+++
    CREATE OR REPLACE PROCEDURE GETID
    (a IN TEST.COUNTRY%TYPE,
    b IN TEST.STATE%TYPE) AS
    V_ID TEST2.c%TYPE;
    CURSOR C1_DATA IS
    SELECT a,b,c FROM TESTSURVEYUNITS WHERE COUNTRY=a
    AND STATE=b ;
    BEGIN
    BEGIN
    FOR C1DATA_REF IN C1_DATA LOOP
    DBMS_OUTPUT.PUT_LINE ('SVU_ID IS:' || C1DATA_REF.c);
    END LOOP;
    END;
    BEGIN
    SELECT e,f,g,c FROM TEST2 WHERE SVU_ID=C1DATA_REF.c;
    DBMS_OUTPUT.PUT_LINE('PART 2'||C1DATA_REF.c||C1DATA_REF.e);
    END;
    END;

    Here it is reformatted. The SELECT statement in the second block won't work because there is no INTO clause and also because the cursor for loop in the previous block is out of scope. The loop has fetched all of its rows and has completed. What are you trying to do with the second select statement?
    CREATE OR REPLACE
    PROCEDURE GETID (a IN TEST.COUNTRY%TYPE
                    ,b IN TEST.STATE%TYPE) AS
    V_ID TEST2.c%TYPE;
    CURSOR C1_DATA IS
    SELECT a,b,c
    FROM   TESTSURVEYUNITS
    WHERE  COUNTRY=a
    AND    STATE=b ;
    BEGIN
       BEGIN
          FOR C1DATA_REF IN C1_DATA LOOP
             DBMS_OUTPUT.PUT_LINE ('SVU_ID IS:' || C1DATA_REF.c);
          END LOOP;
       END;
       BEGIN
          SELECT e,f,g,c
          FROM   TEST2
          WHERE  SVU_ID=C1DATA_REF.c;
          DBMS_OUTPUT.PUT_LINE('PART 2'||C1DATA_REF.c||C1DATA_REF.e);
       END;
    END;

  • Pass parameter to pl/sql block

    Hi,
    I am getting following error when trying to create staging table from shell script by passing parameter.
    SQL*Loader-941: Error during describe of table T1_1DAY_STG
    ORA-04043: object T1_1DAY_STG does not existThis is PL/SQL block being called inside shell script
    begin
    execute immediate 'create table t1_&1._stg as select * from t1_rpt_tmt';
    end Shell Script Call
    load_data_to_oracle()
    for i in 1DAY 7DAY 15DAY
    do
    ${ORACLE_HOME}/bin/sqlplus ${ORACLE_USER}/${ORACLE_PASSWD}@${ORACLE_SID} << EOF > ${TMP_LOG_FILE} 2>&1
    set serveroutput on
    @${CREATE_STAGE_SQL} "$i"
    COMMIT;
    QUIT;
    EOF
    ########Main#######
    load_data_to_oracleThanks
    Sandy

    It is probably a permission issue. Are you the owner of the table you are trying to select from in your PL/SQL block? if not, do you have select permission granted specifically?
    Here is my test:
    test > create table T_ABC (a number, b number);
    Table created.
    test > @t_abc Hello
    test > begin
    2
    3 execute immediate 'create table t1_&1._stg as select * from t_abc';
    4
    5 end;
    6 /
    old 3: execute immediate 'create table t1_&1._stg as select * from t_abc';
    new 3: execute immediate 'create table t1_Hello_stg as select * from t_abc';
    PL/SQL procedure successfully completed.
    test > desc t1_Hello_stg
    Name
    A
    B
    test > desc T_ABC
    Name
    A
    B
    test >

  • How to pass parameter to pl/sql block

    Hi,
    I am getting following error when trying to create staging table from shell script by passing parameter.
    SQL*Loader-941: Error during describe of table T1_1DAY_STG
    ORA-04043: object T1_1DAY_STG does not existThis is PL/SQL block being called inside shell script
    begin
    execute immediate 'create table t1_&1._stg as select * from t1_rpt_tmt';
    endShell Script Call
    load_data_to_oracle()
    for i in 1DAY 7DAY 15DAY
    do
    ${ORACLE_HOME}/bin/sqlplus ${ORACLE_USER}/${ORACLE_PASSWD}@${ORACLE_SID} << EOF > ${TMP_LOG_FILE} 2>&1
    set serveroutput on
    @${CREATE_STAGE_SQL} "$i"
    COMMIT;
    QUIT;
    EOF
    ########Main#######
    load_data_to_oraclethanks
    sandy

    i dont understand why you want run it from shell script. you can write procedure like this :
    SQL>
    SQL> CREATE OR REPLACE PROCEDURE mytestProc(p_in VARCHAR2) AS
      2  begin
      3    FOR i IN (select REGEXP_SUBSTR(p_in,'[^,]+',1,ROWNUM) tblName
      4                from dual
      5                CONNECT BY INSTR(p_in, ',', 1, level - 1) > 0)
      6    LOOP
      7      execute immediate 'create table t1_'||i.tblname||'_stg as select * from myt2';
      8    END LOOP;
      9  end;
    10  /
    Procedure createdand run it
    SQL> exec mytestProc('1day,7day,15day');
    PL/SQL procedure successfully completed
    SQL> select * from t1_15day_stg
      2  union all
      3  select * from t1_1day_stg
      4  union all
      5  select * from t1_7day_stg;
    T                  N
    SQL>
    SQL> drop table t1_15day_stg;
    Table dropped
    SQL> drop table t1_1day_stg;
    Table dropped
    SQL> drop table t1_7day_stg;
    Table dropped
    SQL> purge table t1_15day_stg;
    Done
    SQL> purge table t1_1day_stg;
    Done
    SQL> purge table t1_7day_stg;
    Done
    SQL>

  • Pass parameter with apostrophe

    Hi,
    How I can pass parameter with apostrophe to a store procedure.Whats the change i need to make to ' when i am passing.
    Thanks in advance.
    Pramod

    If you are using bind variables, the string should be escaped automatically. If you are not using bind variables, you should be using bind variables.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Pass parameter to trigger

    Hi
    Here is my scenario:
    I have a UI that calls stored procedure to do an update or a delete and an insert in a table. I need a trigger on update or delete to insert records in the audit table. This is clear to me. What is not clear to me is that:
    I need to store the name of the user who updated/deleted/inserted the table. However how can I pass that to the trigger such that I can store the user name who performed the operation in the audit table?
    The sequence is:
    UI --> Stored procedure --> updates/Deletes-Inserts in Table1 --> Trigger fired --> Insert the old record into the audit table
    The audit table has a column user. Even if I pass the user name to the stored procedure, how can I pass it further down to the trigger?

    Hi,
    Try to Call the procedure in trigger. from trigger body try to send get the user name who had done the inser/delete/update and pass it on as a parameter to procedure.
    you can get the current by the following
    SYS_CONTEXT('USERENV','SESSION_USER');
    UI --> Stored procedure --> updates/Deletes-Inserts in Table1 --> Trigger fired (call to procedure with parameter) --> Insert the old record into the audit table
    - Pavan Kumar N

  • Cannot pass parameter to webservice using wsdl

    cannot pass parameter to webservice using wsdl
    I write code the following:
    step 1
    -->
    DECLARE
    SERVLET_NAME VARCHAR2(32) := 'orawsv';
    BEGIN
    DBMS_XDB.deleteServletMapping(SERVLET_NAME);
    DBMS_XDB.deleteServlet(SERVLET_NAME);
    DBMS_XDB.addServlet(NAME => SERVLET_NAME,
    LANGUAGE => 'C',
    DISPNAME => 'Oracle Query Web Service',
    DESCRIPT => 'Servlet for issuing queries as a Web Service',
    SCHEMA => 'XDB');
    DBMS_XDB.addServletSecRole(SERVNAME => SERVLET_NAME,
    ROLENAME => 'XDB_WEBSERVICES',
    ROLELINK => 'XDB_WEBSERVICES');
    DBMS_XDB.addServletMapping(PATTERN => '/orawsv/*',
    NAME => SERVLET_NAME);
    END;
    step 2
    --> CREATE USER test IDENTIFIED BY test QUOTA UNLIMITED ON users;
    step 3
    --> GRANT CONNECT,CREATE TABLE, CREATE PROCEDURE TO test;
    step 4
    --> GRANT XDB_WEBSERVICES TO test
    step 5
    --> GRANT XDB_WEBSERVICES_OVER_HTTP TO test
    step 6
    --> GRANT XDB_WEBSERVICES_WITH_PUBLIC TO test
    step 7
    -->
    SELECT dbms_xdb.getftpport() FROM dual;
    SELECT dbms_xdb.gethttpport() FROM dual;
    exec dbms_xdb.setHttpPort(8080);
    exec dbms_xdb.setFtpPort(2100);
    step 8
    -- Double check
    host lsnrctl STATUS
    SET head off
    -- Valid?
    SELECT * FROM dba_registry WHERE comp_id='XDB';
    SET head ON
    connect test/test;
    CREATE OR REPLACE FUNCTION FACTORIAL_I(N PLS_INTEGER)
    RETURN PLS_INTEGER
    IS
    n_result number;
    BEGIN
    IF N > 1 THEN
    n_result := N * FACTORIAL_I(N - 1);
    RETURN(n_result);
    ELSE
    RETURN(1);
    END IF;
    END;
    WSDL Output:
    http://localhost:8080/orawsv/TEST/FACTORIAL_I?wsdl
    output picture: http://www.picza.net/show.php?id=20120429vlxdlFdvFPdvF134795
    I try pass prameter by http://localhost:8080/orawsv/TEST/FACTORIAL_I?SBINARY_INTEGER-FACTORIAL_IInput=5
    but error <ErrorNumber>ORA-31011</ErrorNumber>
    Edited by: 930927 on 29 เม.ย. 2555, 9:02 น.

    Using something like SoapUI or do it via PL/SQL as shown here: Re: Ora-31011 with a very, very simple native webservice

  • Passing parameter with apostrophe to sp

    Hi,
    How I can pass parameter with apostrophe to a store procedure.Whats the change i need to make to ' when i am passing.
    Thanks in advance.
    Pramod

    just use double apostrophe
    SQL> var x char
    SQL> exec :x := '''';
    PL/SQL-Prozedur wurde erfolgreich abgeschlossen.
    SQL> print x
    X
    '

  • Pls. help me   -   passed parameter

    I have a procedure "PROC_XXX" that it has one cursor inside. "CUR_XXX"
    I would like to pass parameter that have statement from my trigger etc. "When-button-pressed" to my cursor "CUR_XXX" in procedure "PROC_XXX".
    < v_stmt := 'and v_empno = ...........' >.
    How can i pass ' v_stmt ' to "PROC_XXX " in my DB.
    Thank you very much
    v_stmt is depend on events
    < v_stmt := 'and v_empno between ...........' >.
    < v_stmt := 'or v_empno =< ...........' >.

    Do you already made the procedure? Looks like you could use dynamic sql in the procedure. check out the oracle pl/sql documentation.

Maybe you are looking for

  • Multiple Accounts on one iPad

    So, here's the situation, my wife received an iPad from her school she teaches at, as she's starting a new program with the kids there where each one will have an iPad as a learning tool during class. So it's technically the school's device, but she

  • Export to Excel - Multiple Tables in a single details section

    Hi All, I have a set of reports where I am using a single details section to show multiple tables stacked over one another. That is, i have a table with three columns and two rows, followed by some white space and then another table with 4 columns an

  • Need to undo the "use for new links" option...???

    Hello- Probably an easy answer to this one- I'm just not seeing it.....My first link I made on the page I clicked "use this for new links". Now I don't want to use that format for new links anymore. Do I always have to remember which link was the fir

  • TREX - Search, Classification, Taxonomies and Indexes configuration

    hey,      I have successfully installed TREX 6.1 and would like to set up Search, Classification, Taxonomies on Enterprise Portal and set up indexes on TREX.      How do i do this? Is there any documentation detailing step-by-step procedure to achiev

  • ??? can BRIDGE helps PREMIERE reconnect media ???

    Dear, I'm using Premiere CS3 (also have Bridge). I'm editing on AspectHD, and I'd like to have my co-editor working on his machine with DV version of the footage. To have him have exactly what I've got so far, I went this way: - saved a copy of my pr