ORA-904 when calling a sys package from a private one (on 9.2.0.5.0)

Hi,
I explain:
SELECT DBMS_PIPE.UNIQUE_SESSION_NAME
FROM dual;
works!!!
CREATE OR REPLACE FUNCTION GET_NAME RETURN VARCHAR2 IS
vc_name VARCHAR2(1000);
BEGIN
SELECT DBMS_PIPE.UNIQUE_SESSION_NAME
INTO vc_name
FROM dual;
RETURN vc_name;
END GET_NAME;
works (no error at compile time)
BUT:
SELECT GET_NAME FROM DUAL;
Get a ORA-00904 error:
ORA-00904: : identificateur non valide
ORA-06512: at "DBASYS.GET_NAME", line 4
This mean that DBMS_PIPE.UNIQUE_SESSION_NAME
is unknown.
But I used it from the same session just before.
What is the problem ?
This example is simple, I HAVE TO use a function, in my true function, I do things before and after the call.
Thanks.
Christian COMMARMOND (France)

Hi Kamal,
Thank you for taking care of my problem...
About:
CREATE OR REPLACE FUNCTION GET_NAME RETURN VARCHAR2 IS
vc_name VARCHAR2(1000);
BEGIN
vc_name := DBMS_PIPE.UNIQUE_SESSION_NAME;
RETURN(vc_name);
END GET_NAME;
I can not even compile it, I get PLS-00021 DBMS_PIPE UNKNOWN (the message is in french so my translation could differ of the real oracle message but code is OK)
I think that this is the problem of GRANTed objects. It seems that even if my account is DBA, my procs does not inherit of the 'public' grants and that the real owner of the object should GRANT to me the EXECUTE.
If this is the problem, I do not have the SYS password to do the GRANT.
Do you think there could be a work around?
Thanks again,
Christian COMMARMOND

Similar Messages

  • FRM-40735 / ORA-06508 when calling an attached package's procedure

    Hello all,
    I've a problem when calling a procedure in one of my attached libraries. the code is :
    when upper(trim(NOT_MSG_NAME)) = 'REN_MSG_REQ_REG_PERMENANT' then SERV.CLFRM_PBL_NRQP_F(:Parameter.NOTIFICATION_ID);
    and it gives me FRM-40735 stating that an ORA-06508 has occurred when calling the procedure.
    Important and funny thing is, when I add the path to the library , It works fine!
    When I attach it, removing the path, It goes wrong like I said..
    the location of the library is:D:\DevSuiteHome\cgenf61\ADMIN , the path is added in FORMS_PATH and all the other
    libraries attached to the form in the same path are working fine !
    I'm using forms builder 10.1.2.0.2, and the platform is windows and I've migrated from forms 9.0.4.0.19
    anybody having any ideas what the problem may be?

    Thank you Sarah
    In fact, somebody had modified the formsweb.cfg adding two working directory directives (It's a shared PC!). I recon none of them works though no configuration error is raised. I omitted both of them and the problem is gone .
    thank you again.

  • Error when calling an Portal Package

    I get the following error when calling a portal30 package. I am logged on to
    another schema. I have run the provsyns.sql (per Doc ID: 122562.996) statement
    but it still doesn't work.
    Any help is appreciated.
    SQL> declare
    2 l_id number;
    3 begin
    4 l_id :=
    portal30.wwsec_api_private.add_portal_user(p_User_Name=>'user1');
    5 end;
    6 /
    declare
    ERROR at line 1:
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "PORTAL30.WWSEC_API_PRIVATE", line 198
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "PORTAL30.WWLOG_API", line 183
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "PORTAL30.WWCTX_SSO", line 849
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "PORTAL30.WWCTX_SSO", line 669
    ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at line 4
    Thanks,
    Tom Henricksen
    null

    Hi,
    What is the implementation of your Web service? If it's another EJB then you have to define an ejb-local-ref in the deployment descriptor for that other EJB, like this:
    <ejb-local-ref>
        <ejb-ref-name>ejb/MyProcessorBean</ejb-ref-name>
        <ejb-ref-type>Session</ejb-ref-type>
        <local-home>your.package.BiasProcessorLocalHome</local-home>
        <local>your.package.BiasProcessorLocal</local>
    </ejb-local-ref>
    If it's not a J2EE component, there is no java:comp environment naming context (ENC) available. In this case you can look up the EJB local home from the "localejbs/" context, e.g. "localejbs/provider.name/YourAppName/YourEjbName". By default the provider name is "sap.com".
    For more information please refer to <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/java/accessing%20ejb%20applications%20using%20jndi.pdf">this article</a>.
    HTH!
    -- Vladimir

  • ORA-23421 when calling dbms_defer_sys.schedule_purge

    Hi all,
    did anyone experience ORA-23421 when calling dbms_defer_sys.schedule_purge?
    for settimg up an updatable materialized view replication between two Oracle 9.2 databases, I followed the steps detailed in "Oracle9i Replication Management API Reference" and when calling
    DBMS_DEFER_SYS.SCHEDULE_PURGE (
    next_date => SYSDATE,
    interval => 'SYSDATE + 1/24',
    delay_seconds => 0,
    rollback_segment => '');
    on the materialized view site, I get the error ORA-23421, telling me, that job number 48 is not a job in the job queue.
    Do you have any idea, what's going wrong?
    Thanks for your assistance
    Siegfried Hartung

    The answer could be found at http://www.orafaq.com/forum/t/66106/0/
    From a previous run of the initialization scripts another user owned the job, that was adressed. The issue was resolved by changing the script in order to use the old userid (snapadmin instead of mvadmin).

  • Can we call an ODI package from another ODI package within same Project?

    hi All,
    Can we call an ODI package from another ODI package within same Project?

    What you can do is get all the interfaces on the old package that you want to be included in the new package. This way, the new package will have the exact code from the old package.Or generate a scenario out of your ("old") package and drag&drop the scenario in the "new" package.
    That seems easier to me, because you can re-use the scenario as often as you want.
    But you have to take care: If you change your original ("old") package, you have to regenerate the scenario, otherwise the changes do not affect the scenario.
    Edited by: h_elmu_t on 02.07.2009 08:50

  • Call the web packager from a KO??

    Hello!
    I'm having a bit of a senior moment here and could use some
    help - is
    there anyway to call the Web Packager from inside a KO built
    with
    Authorware? I can output an EXE with PackageFile() from
    inside the KO,
    but don't see an obvious way to go the next step and web
    package the file.
    tia,
    Mark Henry

    "Mark Henry" <[email protected]> wrote in
    message
    news:e8k36r$mc1$[email protected]..
    > Hello!
    >
    > I'm having a bit of a senior moment here and could use
    some help - is
    > there anyway to call the Web Packager from inside a KO
    built with
    > Authorware? I can output an EXE with PackageFile() from
    inside the KO, but
    > don't see an obvious way to go the next step and web
    package the file.
    >
    Have you tried launching obp.exe? Maybe it can be launched
    from a command?
    Steve
    ACE - Adobe Community Expert, Authorware
    My blog -
    http://stevehoward.blogspot.com/
    Authorware tips -
    http://www.tomorrows-key.com

  • Error when calling a Oracle package with length 30 (ORA-01948)

    Hi...,
    When I call a Oracle package I get this error message.
    java.sql.SQLException: ORA-01948: identifier's name length (39) exceeds maximum (30)
    ORA-06512: at "SYS.DBMS_PICKLER", line 18
    ORA-06512: at "SYS.DBMS_PICKLER", line 58
    ORA-06512: at line 1
    There is not way we can change the package name. How do we fix it on the java side?
    Regards,
    Praveen

    The statement 'ORA-01948' is coming from the database and not your java program. Therefore you cant fix it on the java side. There is some stored procedure, stored function, or other such code on the database that is too long. Use a database utility tool such as 'Toad' to examine the database and see if you can find what SYS.DBMS_PICKLER means.
    Here is a definition of ORA-01948 I found on the internet:
    ORA-01948: identifier's name length (string) exceeds maximum (string)
    Cause: A name has been specified that is too long. For example, dbms_session.is_role_enabled() specifies a role name that is too long.
    Action: Change the application or command to use a correct identifier.

  • ORA-06502 when calling from a procedure

    HI,
    I have a procedure(p1) inside a package that queries a table and send out the result based on the input paramater value. OUT variable is of same type as the table column(using %type), column size is varchar2(4000). This procedure is called from another procedure(p2) and sends out the result to Java Page to display the results at front-end.
    Problem is when application runs and p1 is called I get the following error message,
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Length/size of the character string queried from table is _1747_ that is within the limit of 4000 chars. If I limit the output to just 500 using substr, I don't get any error but adding a single character startes throwing error. OUT variable in both p1 and p2 are declared as table.column%type and error comes from p1 only as confirmed by the error log.
    When I call p1 or p2 from a declare block, I don't get any error.
    This has really confused me and I am not able to find any reason for this difference in behaviour.
    Request to help me in understanding what could be the issue here.
    Oracle version used is Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
    -Thanks in Advance.

    CREATE or replace PROCEDURE p1
    ( l_id IN VARCHAR2
    , l_str OUT VARCHAR2
    ) IS
      l_temp VARCHAR2(4000);
    BEGIN
      SELECT Response_Message INTO l_temp FROM t1 WHERE Response_ID = l_id;
      l_str := l_temp||'10 symbols';
    END;
    CREATE or replace PROCEDURE p2
    ( l_id IN VARCHAR2
    , l_str OUT VARCHAR2
    ) IS
    BEGIN
      p1(l_id, l_str);
    END;
    /no errors in procedures, but
    DECLARE
    resultstr VARCHAR2(1000);
    BEGIN
      p2(58, resultstr);
      DBMS_OUTPUT.PUT_LINE(resultstr);
    END;
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    ORA-06512: at "P1", line 8
    ORA-06512: at "P2", line 6
    ORA-06512: at line 4Procedure is called with small variable.
    Try check all calls and all procedures for size and check if there are string concatenations.

  • ORA-06553: PLS-908 when calling 10g remote procedure from 11g database

    Hi,
    I have 2 instances: 11g (11.1.0.7) and 10g (10.2.0.4). When I try to call 10g (remote) procedure from 11g database, there is errors:
    ORA-04052: error occurred when looking up remote object CUSTOMER.PRL_PK2_GENERAL@CUSTOMER_LINK
    ORA-06541: PL/SQL: compilation error - compilation aborted
    ORA-06553: PLS-908: The stored format ofCUSTOMER.PRL_PK2_GENERAL@CUSTOMER_LINK is not supported...
    But, if I call the same procedure from another 10g instance, it's OK.
    How can I fix the problem?
    Thx,
    qtpham

    As you can see ,it seems like the workaround that was mentioned there is currently the only way to remove this ORA.
    Workaround: Remove the function call(s) from the called subroutine's
                package's spec.

  • ORA-02074 when calling proc from VB

    Anyone have any idea why a stored procedure that sets a savepoint will fail with
    [Oracle][ODBC][Ora]ORA-02074: cannot ROLLBACK in a distributed transaction
    ORA-02074: cannot SET SAVEPOINT in a distributed transaction
    ORA-06512: at "PIPS_ADMIN.PKG_ACAS_COMMON", line 1098
    ORA-06512: at line 1
    when called from Visual Basic via an ADO connection through ODBC BUT
    will succeed when called from SQL*Plus or TOAD or other tool.
    Any ideas appreciated.
    Mike

    The change was only made to a local variable in a function that was called from the original function that got the parameters from the java client.
    I changed it from localtimestamp to systimestamp and it works fine.
    Do i have to make any settings about the time zone in the jdbc thin client ?

  • ORA-01804 when calling function from java client

    Hi All,
    we changed a PL/SQL-function that is called from a java client from using sysdate to localtimestamp. The function works fine in TOAD, but when called from the java client ist throws an ora-01804: failure to initialize timezone information.
    Any suggestions?
    Alexander

    The change was only made to a local variable in a function that was called from the original function that got the parameters from the java client.
    I changed it from localtimestamp to systimestamp and it works fine.
    Do i have to make any settings about the time zone in the jdbc thin client ?

  • How call procedure or package from Oracle BI Publisher 10.1.3.2.1

    Hi Gurus,
    I need to call a procedure or package from Oracle BI Publisher 10.1.3.2.1 by passing parameters, I do it because it would be easier to fill a table as the report that asks for is too complex (8 breaks, 5 dblinks, 20 tables, etc).
    I'm not using the Oracle XML. Review include the following solutions:
    Re: Stored procedures and dynamic columns
    Re: Is it possible to use Stored Procedures in BI Publisher GUI?
    Re: PL/SQL Stored Procedure w/ XML Template?
    But none of them useful for me was the level of complexity.
    Best regards.

    Hi Vetsrini,
    I write the sentence as it showed in the previous thread
    select from whc_kk_v2.whc_p_kk_publisher (pv_msgerror =>: msgerror,*
    pv_pro1 =>: prov_1,
    pv_pro2 =>: prov_2)
    run when I get the error BIP
    ORA-00933: SQL command not properly ended
    Show me I'm doing wrong, or who may be causing the error. I tried everything but does not leave, please your help.
    Best regards

  • Error when calling a stored procedure from a SQL Script

    Apologies if this is a really dumb question but I can't seem to call a procedure in package from a SQL script. I have a simple package.procedure containing a loop to populate a table. I would like to include a call to this procedure from my database install script, that also includes my CREATE and INSERT statements. I run the script using "@install_databae" and the CREATE and INSERT statements run fine. The script gives an error when it reaches the line below:
    exec lazarus.PopulateGridPositions;
    and gives the error.....
    BEGIN lazarus.PopulateGridPositions; END;
    ERROR at line 1:
    ORA-04063: package body "LAZARUS.LAZARUS" has errors
    ORA-06508: PL/SQL: could not find program unit being called: "LAZARUS.LAZARUS"
    ORA-06512: at line 1
    The procedure and package have both compiled without errors and the statement on its own works fine in SQL*Plus.
    I've obviously missed some fundamental concept with scripts and SQL. Please can anybody help me?

    Histon FTM wrote:
    ORA-04063: package body "LAZARUS.LAZARUS" has errors Above, obviously conflicts with the statement that follows:
    >
    The procedure and package have both compiled without errors and the statement on its own works fine in SQL*Plus.I suggest you take a look in the USER_ERRORS view to see, what the errors are.
    And just checking:
    You have schema called LAZARUS, which holds a package named LAZARUS, which holds a procedure called POPULATEGRIDPOSITIONS?
    Edited by: Toon Koppelaars on Oct 1, 2009 5:55 PM

  • Calling a funtion package from forms

    Hi All,
    I am trying to call a function package in the forms, but I get the below error. Any help Please..
    the code in the trigger :
    DECLARE
    CURSOR C1 IS SELECT ' Rule Id: ' || R.rule_id ||' R_SUPP: ' || ROUND(R.rule_support , 2) ||
    ' R_CONF: ' || ROUND(R.rule_confidence, 2)||' Ante_ATT: ' || ante.attribute_name ||
    ante.conditional_operator || NVL(ante.attribute_str_value,ante.attribute_num_value)||
    ' Conseq_ATT:' || cons.attribute_name || cons.conditional_operator ||
    NVL(cons.attribute_str_value,cons.attribute_num_value)
    FROM TABLE(DBMS_DATA_MINING.GET_ASSOCIATION_RULES(:MODEL_NAME)) R,
    TABLE(R.antecedent) ante,
    TABLE(R.consequent) cons
    --WHERE cons.attribute_name = 'INFLATED'
    ORDER BY rule_confidence, rule_support DESC ;
    BEGIN
         LOOP
              OPEN C1;
              FETCH C1 INTO :RESULT_TEXT;
              EXIT WHEN C1%NOTFOUND;
         END LOOP;
    END;
    ERROR:
    DBMS_DATA_MINING.GET_ASSOCIATION_RULES must be declared..

    Hello,
    It means that the user you are connected do not "see" this package.
    You'd probably have to connect as SYS or SYSTEM, then grant EXECUTE on this package to your user.
    Francois

  • Segmentation fault when calling dbms_alert.register() procedure from OCCI

    I am trying to call the dbms_alert.register() from the OCCI but I get segmentation fault when I run the program, here is the code snippet. I am gettin segmentation fault immediately after calling setSQL() method.
    Environment *occiEnvironment_;
    Connection *occiConnection_ ;
    string userName("SCOTT");
    string userPasswd("tiger");
    string url("");
    occiEnvironment_ = Environment::createEnvironment();
    try{
    occiConnection_ = occiEnvironment_->createConnection(userName,userPasswd,url);
    Statement *occiStatement1;
    cout << "Before setSQL" << endl;
    occiStatement1->setSQL("BEGIN dbms_alert.register(:1); END;");
    cout << "After setSQL" << endl;
    string alert1("MY_ALERT");
    occiStatement1->setString(1,alert1);
    occiStatement1->execute();
    catch (SQLException ea)
    cout << ea.what();
    }

    Thanks for the reply, now I dont see segmentation fault.
    I tried to exted the code further to wait for the registered events, I added the following code, I do get and event but then get the exception:
    Statement *occiStatement1 = occiConnection_->createStatement();
    Statement *occiStatement2 = occiConnection_->createStatement();
    string alert, msg;
    int status;
    occiStatement1->setSQL("BEGIN dbms_alert.register(:1); END;");
    string alert1("MY_ALERT");
    occiStatement1->setString(1,alert1);
    occiStatement1->execute();
    occiStatement2->setSQL("BEGIN dbms_alert.waitany(:alert,:msg,:status); END;");
    occiStatement2->registerOutParam(1, OCCICHAR, sizeof(alert));
    occiStatement2->registerOutParam(2, OCCICHAR, sizeof(msg));
    occiStatement2->registerOutParam(3, OCCIINT, sizeof(int));
    occiStatement2->execute();
    ===========================================================
    ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SYS.DBMS_ALERT", line 252
    ORA-06512: at line 1
    ORA-06502: PL/SQL: numeric or value error
    ORA-06512: at "SYS.DBMS_ALERT", line 252
    ORA-06512: at line 1
    *** glibc detected *** free(): invalid pointer: 0x08619c48 ***
    Aborted

Maybe you are looking for