Wrapped oracle packages

we have a problem with wrapped packages in oracle 10g.
we are wrapping our packages with oracle 9i and our production db version is 10g
when we put our wrapped version in production environment we get a sequence of errors like this:
ORA-06502
ORA-06512
ORA-04061
ORA-04065
ORA-06508
but when we put unwrapped source everything is ok

Obviously 9i wrap is incompatible with 10g wrap, and you should have tried to wrap the source with 10g wrap.
Did you already try this?
Sybrand Bakker
Senior Oracle DBA

Similar Messages

  • Using Oracle Packages in Oracle BI EE

    I am trying to replicate old Discoverer reports in Oracle BI EE. In the old Discoverer reports, they would include the package and function information in the SELECT statement of the SQL. When I try to import the database information in BI EE, I can only get table and view information, not the packages. How do you access and use Oracle packages in BI EE? Thanks in advance for any help you may be able to provide.

    If you have OBIEE 10.1.3.3 OBIEE you can use BI built-in EVALUATE function to call user-defined functions in database.
    This function is intended for scalar and analytic calculations.
    Syntax: EVALUATE('DB_Function(%1)', <Comma separated Expression>)
    Example: SELECT e.lastname,sales.revenue,EVALUATE('dense_rank() over(order by %1 )',sales.revenue) FROM sales s, employee e;

  • Crystal report hangs when calling oracle package

    hi i have a oracle package that calls a proceadure, if i test this package in PLSQL developer it compiles and i get sensible results
    this package has been designed using a ref type cursor to be called from crystal reports. it primary objective when the report is run, is to use File util to output data to an xml file.
    when i run this from crystal reports it locks crystal reports up, and dosent output a file.
    any ideas why crystal is hanging?
    crystal DB call
    {CALL  Enhanced_Pharos_Report.run_report
    (NVL({?a_channel_id},0),{?b_on_date})}
    package
    create or replace package UKTV_PHAROS_EXPORT_RPT
    -- Author : WARDLJ01
    -- Created : 03/04/2006 12:25:03
    -- Purpose : export xml for pharos voiceovers
    -- Public type declarations
    AS
    TYPE result_set_type IS REF CURSOR;
    PROCEDURE run_report
    (main_cursor IN OUT result_set_type,
    V_CHANNEL_ID NUMBER,
    V_ONDATE      DATE);
    end ;--UKTV_PHAROS_EXPORT_RPT;
    package body
    create or replace package body UKTV_PHAROS_EXPORT_RPT AS
    PROCEDURE run_report
    (main_cursor IN OUT result_set_type,
    V_CHANNEL_ID NUMBER,
    V_ONDATE      DATE)
    is
    BEGIN
    OPEN main_cursor FOR
    -- Passess the parameters back to the cursor - which passes them back to the Crystal Report output
    SELECT V_CHANNEL_ID, V_ONDATE from DUAL;
    -- This is a procedure that calls FILE_UTL to export the data.
    UKTV_PHAROS_Export(V_CHANNEL_ID, V_ONDATE);
    END;
    end;
    Proceadure
    create or replace procedure uktv_own.UKTV_Pharos_Export(V_CHANNEL_ID number, V_ONDATE date) is
    l_output utl_file.file_type;
    p_filename varchar2(30);
    V_DETAIL_id varchar2(100);
    V_MEDIA_ID varchar2(150);
    V_REQUIRED varchar2(50);
    V_SCRIPT varchar2(4000);
    V_DEL_DATE varchar2(100);
    V_FULLMEDIA_ID varchar2(500);
    V_START_TIME varchar2(100);
    V_DURATION varchar2(100);
    V_DATE varchar2(100);
    V_CHANNEL varchar2(40);
    V_LOGO_NAME varchar2(250);
    Cursor VO_CURSOR
    IS
    select event_voiceover.detail_id, vo_media_id, vo_required, vo_script, vo_del_date, full_media_id,
    event.start_time, event.duration, event.on_date, event.channel_id, logo.logo_name
    from event_voiceover,
    onair.event, onair.event_technical_data,
    onair.logo
    where event_voiceover.detail_id = event.detail_id
    and event_technical_data.event_technical_data_id = event.event_technical_data_id
    and event_technical_data.content_id = logo.logo_id and
    event.channel_id = V_CHANNEL_ID and
    vo_required = 500004580 and
    event.on_date = V_ONDATE;
    begin
    p_filename :='voice_overs.xml';
    l_output := utl_file.fopen ('PHAROS_DIR', p_filename, 'w' );
    OPEN VO_CURSOR;
    utl_file.put ( l_output,'<Voice_Overs>');
    Loop
    FETCH VO_CURSOR INTO V_DETAIL_id, V_MEDIA_ID, V_REQUIRED,V_SCRIPT, V_DEL_DATE, V_FULLMEDIA_ID, V_START_TIME, V_DURATION, V_DATE, V_CHANNEL, V_LOGO_NAME;
    EXIT WHEN VO_CURSOR%NOTFOUND
    OR VO_CURSOR%ROWCOUNT = 10000;
    utl_file.put( l_output, '<DETAIL_ID>');
    utl_file.put( l_output, V_DETAIL_ID);
    utl_file.put( l_output, '</DETAIL_ID>');
    utl_file.put( l_output, '<MEDIA_ID>');
    utl_file.put( l_output, V_MEDIA_ID);
    utl_file.put( l_output, '</MEDIA_ID>');
    utl_file.put( l_output, '<REQUIRED>');
    utl_file.put( l_output, V_REQUIRED);
    utl_file.put( l_output, '</REQUIRED>');
    utl_file.put( l_output, '<SCRIPT>');
    utl_file.put( l_output, V_SCRIPT);
    utl_file.put( l_output, '</SCRIPT>');
    utl_file.put( l_output, '<DEL_DATE>');
    utl_file.put( l_output, V_DEL_DATE);
    utl_file.put( l_output, '</DEL_DATE>');
    utl_file.put( l_output, '<FULLMEDIA_ID>');
    utl_file.put( l_output, V_FULLMEDIA_ID);
    utl_file.put( l_output, '</FULLMEDIA_ID>');
    utl_file.put( l_output, '<START_TIME>');
    utl_file.put( l_output, V_START_TIME);
    utl_file.put( l_output, '</START_TIME>');
    utl_file.put( l_output, '<DURATION>');
    utl_file.put( l_output, V_DURATION);
    utl_file.put( l_output, '</DURATION>');
    utl_file.put( l_output, '<ONDATE>');
    utl_file.put( l_output, V_DATE);
    utl_file.put( l_output, '</ONDATE>');
    utl_file.put( l_output, '<CHANNEL_ID>');
    utl_file.put( l_output, V_CHANNEL);
    utl_file.put( l_output, '</CHANNEL_ID>');
    utl_file.put( l_output, '<LOGO_NAME>');
    utl_file.put( l_output, V_LOGO_NAME);
    utl_file.put( l_output, '</LOGO_NAME>');
    utl_file.new_line ( l_output);
    end loop;
    utl_file.put ( l_output,'</Voice_Overs>');
    utl_file.fclose(l_output);
    end UKTV_Pharos_Export;

    Hi yes the package uses fileutil to output a file,
    the report user has permission over the file util output directory.
    I have previously used this method to generate rpt, and other output files in parelell.
    thanks
    james

  • Sending an Email from within an Oracle Package

    Hi,
    I am trying to send an email from within a Oracle package Body. The code i have to do this is as follows: -
    PROCEDURE send_mail(sender_in IN VARCHAR2,
    recipient_in IN VARCHAR2,
    date_from_in IN VARCHAR2,
    date_to_in IN VARCHAR2) IS
    -- Procedure to send e-mail
    mailhost VARCHAR2(30) := '192.168.2.6';
    crlf VARCHAR2(2) := CHR(13)||CHR(10);
    --message VARCHAR2(32767);
    message LONG;
    mail_conn utl_smtp.connection;
    reply VARCHAR2(512);
    BEGIN
    mail_conn := utl_smtp.open_connection(mailhost, 25);
    message := 'Date: '||TO_CHAR(SYSDATE, 'DD-MON-YY HH24:MI:SS')||crlf||
    'From: <'||sender_in||'>'||crlf||
    'Subject: ''Holiday Request'||crlf||
    'To: '||recipient_in||crlf||
    utl_smtp.helo(mail_conn, mailhost);
    utl_smtp.mail(mail_conn, sender_in);
    utl_smtp.rcpt(mail_conn, recipient_in);
    utl_smtp.data(mail_conn, message);
    utl_smtp.quit(mail_conn);
    EXCEPTION
    WHEN others THEN
    RAISE;
    END send_mail;
    end holidays;
    I have one question though. I am getting a ORA-29278 SMTP Transien Error: 421 Service Nota Available Error. I think this may be due to the 'Mailhost' value I have given in the above code. I have been informed that this should be the ip address of the mail server used or the ip address of the machine if it is being run locally. What would i need to put in here if i wish for an email to be sent from one hotmail address to another for example?
    Any help would be much appreciated!
    Thanks!
    Darren

    hi
    The funnier part is that
    u can actually type in the sender's email id irrespective of the mail host used
    Like @hotmail.com,@yahoo.com etc.
    The receiver will get the mails from the email id that u wrote .
    The problem u r facing is becoz of the incorrect mail host server ip address
    Try to get in touch with the network admin for the mail server ip address
    other way is
    get the name it would be like
    smtp.domain name .
    hope that helps

  • How to include an Oracle Package in ODI Package

    Hi All,
    I have to include an Oracle Package into an ODI Package.
    Is this possible. If yes, please guide me through.
    Reagrds
    Manoj

    Hi John,
    Thanks for the reply. I ll implement that and will let you know.
    Can you please look at the following as well.
    How to solve this major issue.
    Thanks
    Manoj.

  • Optional Parameter - Oracle Package Throws an Error

    Hi there,
    I have an Oracle Package & it has a stored procedure with optional parameter. The calling code is in ColdFusion.
    When I run my webpage the Oracle throws below error.
    " [Macromedia][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'GET_CONTRACT_BY_DYN_SQL' ORA-06550: line 1, column 7: PL/SQL: Statement ignored "
    Calling Code (ColdFusion)
    <cfstoredproc procedure="CONTRACTS_PKG.GET_CONTRACT_BY_DYN_SQL" datasource="#REQUEST.dsn#">
         <cfprocparam cfsqltype="CF_SQL_INTEGER" type="in" value="1" variable="P_CONTRACTID">     
         <cfprocresult name="qDataDynSQL" resultset="1">
    </cfstoredproc>
    <br>Dynamic SQL Query:
    <cfdump var="#qDataDynSQL#" label="Dynamic SQL Query">
    Oracle Package
    create or replace
    PACKAGE CONTRACTS_PKG AS
    TYPE T_CURSOR IS REF CURSOR;
    PROCEDURE GET_CONTRACT_BY_DYN_SQL(P_CONTRACTID IN NUMBER, P_COLS IN VARCHAR2 DEFAULT '*', IO_CURSOR IN OUT T_CURSOR);
    END CONTRACTS_PKG;
    create or replace
    PACKAGE BODY CONTRACTS_PKG AS
    -- Get Contract Using Dynamic SQL
    PROCEDURE GET_CONTRACT_BY_DYN_SQL(P_CONTRACTID IN NUMBER, P_COLS IN VARCHAR2 DEFAULT '*', IO_CURSOR IN OUT T_CURSOR)
    IS
    V_CURSOR T_CURSOR;
    V_SQL VARCHAR2(200);
    BEGIN
    IF p_contractid > 0 THEN
    V_SQL := 'SELECT '|| P_COLS || ' FROM CONTRACTS WHERE contract_id = ' || P_CONTRACTID ;
    ELSE
    V_SQL := 'SELECT '|| P_COLS || ' FROM CONTRACTS';
    END IF;
    OPEN V_CURSOR FOR V_SQL;
    IO_CURSOR := V_CURSOR;
    END GET_CONTRACT_BY_DYN_SQL;
    END CONTRACTS_PKG;
    Does anyone knows why it throws an error? As you can see in the package header & body the parameter P_COLS has the default value as '*'.
    Looking forward to hear from someone.
    Thanks,
    Hitesh Patel

    931198 wrote:
    I have an Oracle Package & it has a stored procedure with optional parameter. The calling code is in ColdFusion.
    When I run my webpage the Oracle throws below error.Never mind the error - your approach is most definitely a candidate for Oracle WTF.
    Nothing sane about this approach. Especially the decision not to use bind variables and slowing down cursor processing significantly by burning a lot more CPU cycles on hard parsing and fragmenting the SQL Shared Pool in the process.
    Why not used MS Access instead? It is far more suited as a mickey mouse database for a goofy application?
    Why am I badmouthing your approach to Oracle? Because that is exactly the primary cause, the #1 reason, for poor Oracle performance and run-time problems dealing with Shared Pool fragmentation. It is something that many Oracle experts blog about, talk about, write about. It is addressed in numerous books, Oracle documentation, and even Oracle Support Notes.
    And despite the amount of information available on how to get the basics rights in using Oracle... this approach you are pursuing still refuses to die. So it deserves to be beaten with a lead pipe when it rears its ugly head here in this forum..

  • Oracle package invalidate problem with the jdbcOracleConnectionCacheImpl ()

    Hi all,
    I am using the OracleConnectionCacheImpl(); to Create the Oracle connection pool (OracleConnectionCacheImpl class)
    In my application i am calling the oracle stored procs.
    (DB environment :Oracle 9i)
    to call those stored proc i used the Prepared statements.
    All the requests are calling the same java bean to invoke the same package.
    when ever the changes occured in the db level,(it means if that package is invalid. i.e when ever the db refreshes occured), all the requests are geting oracle error.
    after the oracle package become valid.. still i am geting the oracle errors.
    it should not happen, because stored proc is in valid state.
    if we restart our adapter or java service then we are geting the proper responses.
    we don't know when the db problems occurs, when it will be solve
    can any one help me to make my application stable
    kindly help me to get underastand the behaviour of our java code and the jdbc behaviour.
    if any one didn't understand the above description i can mail you the code what i am using..
    Thanks in advance
    RajThota

    A regular Oracle database environment comes with several mandatory userids. These include SYS and SYSTEM. SYS 'owns' all details of the database and SYSTEM is the 'super DBA'. These are database userids, not operating system userids.
    I suspect the repository wizard wants to access the SYSTEM userid to be able to create a new schema (equivalent to 'database' for other vendors) within the Oracle environment.
    In older versions of Oracle, the default SYSTEM password was 'MANAGER'. These days, any security conscious DBA will have changed that quickly, but ...

  • Problem with oracle packages CREATE PACKAGE some packagename in MaxDB

    Hi All,
    I am having Problems in Creating Packages from MaxDB ..Does MaxDB supports the CREATE PACKAGE <some packagename>concept ? if so please help me how to achieve in creating packages ..
    My sample Oracle package Creation is as follows:
    CREATE OR REPLACE PACKAGE BODY acs
    AS
      FUNCTION add_user (
        user_id     IN users.user_id%TYPE DEFAULT NULL,
        object_type     IN acs_objects.object_type%TYPE DEFAULT 'user',
        creation_date   IN acs_objects.creation_date%TYPE DEFAULT sysdate,
        creation_user   IN acs_objects.creation_user%TYPE DEFAULT NULL,
        creation_ip     IN acs_objects.creation_ip%TYPE DEFAULT NULL,
      ) RETURN users.user_id%TYPE
      IS
        v_user_id       users.user_id%TYPE;
        v_rel_id        membership_rels.rel_id%TYPE;
      BEGIN
        v_user_id := acs_user.new (user_id, object_type, creation_date,
                    creation_user, creation_ip, email, ...
        RETURN v_user_id;
      END;
    END acs;
    show errors Can you Please Explain me how to write the same Package in MaxDB?
    Thanks & Regards,
    Shanmukh
    Edited by: shanmukh babu on May 16, 2008 10:11 AM

    Hi Shanmukh,
    MaxDB does not have packages like you'll find them in Oracle.
    But you can define your own functions and procedures.
    From the code-example you posted, I would say that a procedure will do it ...
    I suggest that you first read the documentation on procedures [CREATE DBPROC Statement|http://maxdb.sap.com/doc/7_6/a7/41ee11605911d3a98800a0c9449261/frameset.htm]
    There you'll also find an example in the Tutorial section.
    Be aware that the procedural capabilities of MaxDB are far less enlarged as in Oracle - but they do exist and work in their realm.
    So porting a full PL/SQL application layer to MaxDB procedures may turn out to be quite difficult and/or not the best choice at all.
    KR Lars

  • Execute Oracle Package Function call from FORTE

    Has anyone EVER successfully execute an Oracle Package Function call from FORTE
    via " sql execute procedure "?
    Here's my question, I am able to execute a stored procedure but hasn't figured
    out a way to execute a function which defined in a package. The syntax goes
    like this: sql execute procedure <PackageName>.<FunctionName> ( input
    input_parm, output output_parm). If anyone EVER successfully execute a
    function, please let me know, thanks.

    You'll need to provide a column alias for the function call:
    select func(val) as alias from dual

  • Subquery for inserting doesn't work in Oracle package

    I have experienced a very strange scenario while inserting data inside a Oracle package.
    I have two tables:
    - table "A"
    Columns: "ID", "Value1", "...."
    - table "A_Backup", which contains backup data for table A. It has one more column "BATCH_NUMBER" than table A
    Columns: "BATCH_NUMBER", "ID", "Value1", "...."
    I created following procedure in a package to backup data from table "A" to "A_Backup".
    procedure proc_backup (v_id in number) is
    declare
    v_batch_number varchar2(20);
    begin
    /** generate a batch number using system date */
    select 'BATCH' || to_char(sysdate, 'YYYYMMDDHH24MISS') into v_batch_number from dual;
    /** insert Batch_NUMBER + data from A into A_BACKUP */
    insert into A_BACKUP (select v_batch_number, id, value1, ... from A where A.id = v_id);
    end proc_backup;
    When I debug the procedure, it will not insert any data into A_BACKUP. Apparently, there are some data in table "A" meets criteria "A.id = v_id".
    The strange thing: If I create same procedure. But this time I didn't put procedure inside the package, insert query will work.
    Please help, I have spent a couple of days on this and never make it work. I also tried cursor, it doesn't work either. It seems Oracle package doesn't support "virtual table" (subquery in insert) or whatever you call it.

    Welcome to the forum!
    Whenever you post provide your 4 digit Oracle version (result of SELECT * FROM V$VERSION).
    I don't see any package or test code that calls the procedure or error messages or results from any procedure calls.
    You say you have a problem with a package but don't post the package version of the code you are having a problem with.
    How is anyone supposed to find a problem in code that you don't post? And when you post use \ tags as discussed in the FAQ.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Using Oracle package variables in JDBC.

    Can anybody know how we can use Oracle Package variable in Java/JDBC?
    I am using a insert trigger on a table which will initialize the login user
    from a package variable.In my log4j configuration file, while inserting data into this table, I am updating the user with my current user. But the insert statement is not identifying the user and it is inserting null.
    PLease let me know.

    Siva,
    You said:
    It is not inserting the user in the tableI see no table, here. Only a variable in a PL/SQL package.
    You also said:
    But the same is working in Oracle.Do you mean in SQL*Plus?
    Siva, try to forget how you are doing it, and tell me what you are trying to do.
    Do you have some UPDATE_USER column in your database tables where you record the username of the person who did the operation?
    Are you trying to write a trigger that populates this column?
    If so, then all you need is something like:
    create or replace trigger MY_TRIG
      after insert or update
      on MY_TABLE
      for each row
    begin
      :new.UPDATE_USER := user;
    end;Good Luck,
    Avi.
    P.S. By the way, what has this to do with OC4J?

  • Oracle Package is a pl/sql block

    Hello ,
    I am having a simple doubt on oracle package .
    A pl/sql block (executable section) must have a begin and end .
    But oracle package is having only the end part ,
    so is it a pl/sql block or what ........................
    Thanks

    >
    A pl/sql block (executable section) must have a begin and end .
    But oracle package is having only the end part ,
    so is it a pl/sql block or what ........................
    >
    No - a package is not a block.
    When you have basic questions like this ALWAYS start with the Oracle documentation.
    In this case that would be the PL/SQL language reference
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/overview.htm#sthref18
    From Chapter 1 Overview of PL/SQL is the definition of a block
    >
    PL/SQL Blocks
    The basic unit of a PL/SQL source program is the block, which groups related declarations and statements.
    A PL/SQL block is defined by the keywords DECLARE, BEGIN, EXCEPTION, and END. These keywords partition the block into a declarative part, an executable part, and an exception-handling part. Only the executable part is required.
    Declarations are local to the block and cease to exist when the block completes execution, helping to avoid cluttered namespaces for variables and subprograms.
    Blocks can be nested: Because a block is an executable statement, it can appear in another block wherever an
    >
    And from Chapter 10 Using PL/SQL Packages
    >
    What is a PL/SQL Package?
    A package is a schema object that groups logically related PL/SQL types, variables, and subprograms. Packages usually have two parts, a specification ("spec") and a body; sometimes the body is unnecessary.
    The specification is the interface to the package. It declares the types, variables, constants, exceptions, cursors, and subprograms that can be referenced from outside the package. The body defines the queries for the cursors and the code for the subprograms.
    You can think of the spec as an interface and of the body as a black box. You can debug, enhance, or replace a package body without changing the package spec.
    >
    This clearly shows that a package is not a block.

  • UCCX 8.0 with Oracle Packages

    Hi All,
    I'm implementing a UCCX 8.0 IVR application to be integrated with Oracle 11g database. I have a requirement to call some packages on the Oracle database to retrieve some values and integrate it with the IVR script.
    Is there a way to call Oracle packages from withtin the script itself and retrieve the result vaues in some variables? or do I have to use a middleware application or a webservice to do the job.
    Regards,
    Mustafa

    Hi Mustafa,
    The Oracle 11g is not supported with UCCX 8.x and will be supported with coming UCCX 9.0 version.
    http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_compatibility/matrix/crscomtx.pdf
    Config Guide for external DB page number  237
    http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_8_0/configuration/guide/uccx801ag.pdf
    Regards,
    Gnaneswaran.
    Pls rate helpful posts..

  • Is it possible to call a oracle packaged storedprocedure through

    Is it possible to call a oracle packaged storedprocedure through
    Deski?
    Also
    Receiving error when creating desktop intelligence report while using a
    stored procedure that retrieves data from globaltemporary table. Error
    message is " Object no longer exists". This same procedure can be
    successfully executed from eitherOracle SQL Plus or Crystal Reports.
    Any ideas , please help?

    It is possible to report off Stored Procedures in BusinessObjects Desktop Intelligence XIR2.  What you need to do is to configure your Stored Procedure as a data source. If you use parameter please make sure  that the default database is set to the database that contains the stored procedure.
    e.g. Click the correct DSN for the stored procedure. Click Configure.Click Next until the Change the default database to option appears.Change the default database to the database that contains the stored procedure.
    I hope this helps,
    Regards,
    Tim

  • 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.

Maybe you are looking for