Procedure or package

regarding execution matter which one is faster procedure or package and why

Anutosh, there is nothing like faster between the two as you cannot compare them.
you execute a procedure but you never execute a package. you always execute the functions and the procedures inside the package. so there is no question about comparison.
offcourse you get advantage with package like
--overloaded procedure and functions.
--if you invoke any procedure/function within the package the entire package is loaded to the memory avoiding disk reads.
etc..

Similar Messages

  • How to copy procedures and packages from one server to another?

    Hi,
    I have 439 packages and 178 procedures located in one server called MAXWELL.
    I need to copy these objects to another server called TITAN.
    The schema names is SPCBR in both servers.
    So both servers have an instance running with this schema SPCBR.
    SPCBR in TITAN server has their tables with table data which was generated by an export/import process from MAXWELL server.
    However, procedures and packages were not copied by the export/import because I used the clause 'tables'.
    Now, what can I do in order to equalize procedures and packages in both databases? I can't risk in damaging or duplicating data in my database located in TITAN server, ok?
    Thanks,

    Another simple alternative, according to AskTom (http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:454220160386)
    ---------------- getcode.sql ----------------------------
    set feedback off
    set heading off
    set termout off
    set linesize 1000
    set trimspool on
    set verify off
    spool &1..sql
    prompt set define off
    select decode( type||'-'||to_char(line,'fm99999'),
    'PACKAGE BODY-1', '/'||chr(10),
    null) ||
    decode(line,1,'create or replace ', '' ) ||
    text text
    from user_source
    where name = upper('&&1')
    order by type, line;
    prompt /
    prompt set define on
    spool off
    set feedback on
    set heading on
    set termout on
    set linesize 100
    ------------------- eof --------------------------------
    it extracts one procedure, function or package to a file. Thats it. If you
    wanted to get all of the procedures in a schema extracted to the current working
    directory, you would run a script:
    --------------- getallcode ---------------------------
    set termout off
    set heading off
    set feedback off
    set linesize 50
    spool xtmpx.sql
    select '@getcode ' || object_name
    from user_objects
    where object_type in ( 'PROCEDURE', 'FUNCTION', 'PACKAGE' )
    spool off
    spool getallcode_INSTALL.sql
    select '@' || object_name
    from user_objects
    where object_type in ( 'PROCEDURE', 'FUNCTION', 'PACKAGE' )
    spool off
    set heading on
    set feedback on
    set linesize 130
    set termout on
    @xtmpx.sql
    ---------------- eof ---------------------------------
    You can see how to filter on that one by adding to the where clause if you want.
    Just run @getallcode_INSTALL to run all of the scripts...

  • Problem with procedure in package

    Problem with procedure in package:
    create table accounts
    (acno number(10),
    name varchar2(20),
    balance number(10,2));
    create package banking is
    procedure new_acct(acno NUMBER, name IN VARCHAR);
    procedure acct_dep(acno IN NUMBER, amount IN NUMBER);
    procedure acc_wdr(acno IN NUMBER, amount IN NUMBER);
    procedure acc_bal(acno IN NUMBER, bal OUT NUMBER);
    function acc_drwn(acno IN NUMBER) RETURN BOOLEAN;
    end banking;
    create or replace package body banking is
    procedure new_acct ( acno IN number,
    name IN varchar) is
    begin
    insert into accounts
    (acno, name, balance)
    values
    (acno, name,0);
    end;
    procedure acct_dep(acno IN NUMBER,
    amount IN NUMBER) is
    begin
    update accounts
    set balance = balance + amount
    where acno = acno;
    end;
    procedure acc_wdr(acno IN NUMBER,
    amount IN NUMBER) is
    begin
    update accounts
    set balance = balance - amount
    where acno = acno;
    end;
    procedure acc_bal(acno IN NUMBER,
    bal OUT NUMBER) is
    begin
    declare cursor c_balance(i_acno IN accounts.acno%type) is
    select balance
    from accounts
    where acno = i_acno;
    acc_bal accounts.balance%type;
    begin
    if c_balance%isopen then
    close c_balance;
    end if;
    open c_balance(acno);
    fetch c_balance into acc_bal;
    close c_balance;
    end;
    end;
    function acc_drwn(acno IN NUMBER) RETURN BOOLEAN is
    begin
    declare cursor c_balance(i_acno IN accounts.acno%type) is
    select balance
    from accounts
    where acno = i_acno;
    bal accounts.balance%type;
    begin
    if c_balance%isopen then
    close c_balance;
    end if;
    open c_balance(acno);
    fetch c_balance into bal;
    close c_balance;
    if bal < 0 then
    return true;
    else
    return false;
    end if;
    end;
    end;
    end banking;
    begin
    banking.new_acct(123,'FRANKS');
    end;
    execute banking.acct_dep(123,100);
    execute banking.acc_wdr(123,50);
    Works fine up to this point, however when running the balance check the balance amount is not visible?
    SQL> set serveroutput on
    SQL> begin
    2 declare
    3 bal accounts.balance%type;
    4 begin
    5 banking.acc_bal(123,bal);
    6 dbms_output.put_line('Franks balance is '||bal);
    7 end;
    8 end;
    9 /

    procedure acc_bal(acno IN NUMBER,
       bal OUT NUMBER)
    is
    cursor c_balance(i_acno IN accounts.acno%type) is
       select balance
       from accounts
       where acno = i_acno;
       l_acc_bal accounts.balance%type;
    begin
       open c_balance(acno);
       fetch c_balance into l_acc_bal;
       close c_balance;
       bal := l_acc_bal;
    end;

  • 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

  • Help....on stored procedure (or package)

    Hi,
    I have any problem to create stored procedure in Oracle, Can you help me?
    I have to create a stored procedure (or package) in order to reserve the free rooms to the students in the period comprised between the DATE_START and DATE_END.
    Table of the present rooms in building BL1 (RM): SEX 1 = M - SEX 2 = F SEX = 0 (ROOM WITHOUT SEX)
    BL_ID.....FL_ID.......RM_ID.........SEX......RM_STD.....RM_CAT
    BL1.........1..........101..............1........S........ROOM
    BL1.........1..........102..............0........D........ROOM
    BL1.........1..........103..............2........T........ROOM
    BL1.........2..........201..............2........S........ROOM
    BL1.........2..........202..............1........D........ROOM
    BL1.........2..........203..............1........T........ROOM
    BL1.........3..........301..............2........S........APARTMENT
    BL1.........3..........302..............2........D........APARTMENT
    BL1.........3..........303..............1........T........APARTMENT
    BL1.........3..........304..............1........D........APARTMENT
    BL1.........3..........305..............0........D........APARTMENT
    Table of the students (EM):
    EM_ID...........BL_ID.......FL_ID........RM_ID........COD_STUD
    SABRINA..........BL1..........1............102.........524505
    TAKEM............BL1..........1............103.........569673
    SERAFINO.........BL1..........1............103.........589920
    STELLA...........BL1..........1............102.........574659
    CHIARA...........BL1..........1............101.........587845
    VIDAL............BL1..........1............102.........602877
    ROSARIA..........BL1..........2............202.........517070
    LUCA.............BL1..........2............201.........602743
    DANIELA..........BL1..........2............203.........602865
    ANNAMARIA........BL1..........3............305.........588721
    LUIGI............BL1..........3............304.........546517
    Type of rooms (RM_STD):
    RM_STD.......STD_EM........DESCRIPTION
    D.............4..............DOUBLE
    T.............6..............TRIPLE
    S.............2..............SINGLE
    Tables of the reservations carried out from the students (RMPCT):
    EM_ID......BL_ID........FL_ID......RM_ID......DATE_START.......DATE_END.......COD_STUD
    CHIARA......BL1.........1..........101.......11/02/2004.......12/02/2004.......587845
    CHIARA......BL1.........1..........101.......03/02/2005.......16/02/2005.......587845
    SERAFINO....BL1.........1..........102.......12/02/2004.......19/02/2004.......589920
    VIDAL.......BL1.........1..........102.......16/02/2004.......01/03/2004.......602877
    SERAFINO....BL1.........1..........103.......01/02/2004.......15/02/2004.......589920
    TAKEM.......BL1.........1..........103.......04/02/2005.......10/02/2005.......569673
    LUCA........BL1.........2..........201.......03/02/2005.......23/02/2005.......602743
    ROSARIA.....BL1.........2..........202.......03/02/2005.......16/02/2005.......517070
    DANIELA.....BL1.........2..........203.......03/02/2005.......04/02/2005.......602865
    LUIGI.......BL1.........3..........301.......03/02/2005.......23/02/2005.......546517
    VALERIA.....BL1.........3..........302.......12/02/2004.......16/02/2004.......515348
    CHIARA......BL1.........3..........302.......05/02/2004.......15/02/2004.......587845
    CHIARA......BL1.........3..........304.......10/02/2004.......12/02/2004.......587845
    CHIARA......BL1.........3..........305.......20/01/2004.......04/02/2004.......587845
    ANNAMARIA...BL1.........3..........305.......03/02/2005.......16/02/2005.......588721
    INPUT PARAMETERS:
    CREATE OR REPLACE Procedure RESERVE_ROOMS (stud_name varchar2,
    cod_stud varchar2,
    bl_in varchar2,
    fl_in varchar2,
    rm_in in varchar2,
    sex_in varchar2,
    date_start_in varchar2,
    date_end_in varchar2)
    CONDITIONS:
    verify if there are students in table EM:
    select count (1)
    into v_appo
    from em
    where em_id = stud_name
    and cod_stud = cod_stud;
    if v_appo = 0 then
    insert new student:
              insert into em (em_id,cod_sud,sex)
    values (stud_name,cod_stud,sex_in);
    Now I must verify the free rooms in the period comprised between the DATE_START_IN and DATE_END_IN.
    I tried this query: (seem correct...have you any idea?)
    select bl_id,fl_id,rm_id,RM_STD
    from rm
    where (bl_id,fl_id,rm_id,RM_STD) not in (select a.bl_id,a.fl_id,a.rm_id,A.RM_STD
                             from rm a, rmpct b
                             where a.bl_id=b.bl_id
                             and a.fl_id=b.fl_id
                             and a.rm_id=b.rm_id
                             AND((b.date_start <= TO_DATE(date_start_in, 'dd-mm-YYYY')
                             AND b.date_end >= TO_DATE(date_end_in, 'dd-mm-YYYY'))
                             OR ( b.date_end <= TO_DATE(date_end_in, 'dd-mm-YYYY'))
                             AND b.date_end >= TO_DATE(date_start_in, 'dd-mm-YYYY')
                             OR ( b.date_start >= TO_DATE(date_start_in, 'dd-mm-YYYY')
                             and b.date_start <= TO_DATE(date_end_in, 'dd-mm-YYYY')
                             AND b.date_end >= TO_DATE(date_end_in, 'dd-mm-YYYY'))))
    with this query I get all free rooms in period date_start_in - date_end_in, but I must,also,verify if there are double or triple rooms (reserved) with minus of 2 (double) or minus of 3 (triple) students. If there are I can reserved these rooms.
    I tried to verify with these steps:
    CREATE OR REPLACE VIEW COUNT_EM ( BL_ID,
    FL_ID, RM_ID, NUMBER_EM ) AS
    (SELECT rm.bl_id, rm.fl_id, rm.rm_id, COUNT(*) as numero_em
    FROM em, rm
    WHERE em.bl_id(+) = rm.bl_id
    AND em.fl_id(+) = rm.fl_id
    AND em.rm_id(+) = rm.rm_id
    and rm.rm_std in ('S', 'D', 'T')
    group by rm.bl_id, rm.fl_id, rm.rm_id)
    CREATE OR REPLACE VIEW COUNT_RMPCT ( BL_ID,
    FL_ID, RM_ID, STD_EM, NUMBER_RMPCT
    ) AS
    SELECT rm.bl_id, rm.fl_id, rm.rm_id, rmstd.std_em, COUNT(*) as numero_rmpct
    FROM rm, rmpct,rmstd
    WHERE rmpct.bl_id(+) = rm.bl_id
    AND rmpct.fl_id(+) = rm.fl_id
    AND rmpct.rm_id(+) = rm.rm_id
    and rm.rm_std=rmstd.rm_std
    and rm.rm_std in ('S', 'D', 'T')
    AND((rmpct.date_start <= TO_DATE(date_start_in', 'dd-mm-YYYY')
    AND rmpct.date_end >= TO_DATE(date_end_in, 'dd-mm-YYYY'))
    OR ( rmpct.date_end <= TO_DATE(date_end_in, 'dd-mm-YYYY'))
    AND rmpct.date_end >= TO_DATE(date_start_in, 'dd-mm-YYYY')
    OR ( rmpct.date_start >= TO_DATE(date_start_in, 'dd-mm-YYYY')
    and rmpct.date_start <= TO_DATE(date_end_in, 'dd-mm-YYYY')
    AND rmpct.date_end >= TO_DATE(date_end_in, 'dd-mm-YYYY')))
    group by rm.bl_id, rm.fl_id, rm.rm_id, rmstd.std_em
    AND FINALLY:
    select a.bl_id, a.fl_id, a.rm_id, a.NUMBER_RMPCT, B.NUMBER_EM, a.std_em, (a.std_em - (a.NUMBER_RMPCT+B.NUMBER_EM)) RM_FREE
    from COUNT_RMPCT a, COUNT_EM b
    where a.bl_id=b.bl_id
    and a.fl_id=b.fl_id
    and a.rm_id=b.rm_id
    if RM_FREE > 0 THEN there are free rooms (D or T) between those occupied in that period.
    Now If the room (bl_in,fl_in,rm_in) is free I can reserve inserting it in the table RMPCT:
    INSERT INTO rmpct (bl_id, fl_id, rm_id,em_id,cod_stud,date_start, date_end)
    values(bl_in,fl_in,rm_in,stud_name,cod_stud,date_start_in,date_end_in);
    If I haven't rm_in (can be null) I must reserve the first free room (random).
    after these controls: I update table of the students:
    UPDATE em
    Set bl_id = BL_IN,fl_id= FL_IN,rm_id=rm_in
         where em_id=stud_name
         and cod_stud=cod_stud;
    Finally I must make a control on the sex of the room, because there are rooms that have sex=0
    if RM.SEX <> 0 then
         null
    else
    if rm_cat = 'ROOM' then
    UPDATE rm
    set sex = sex_in
    where bl_id = in
    and fl_id = in
    and rm_id = in;
    if rm_cat = 'APARTMENT' then (update on all rooms)
    UPDATE rm
    set sex = sex_in
    where bl_id = in
    and fl_id = in;
    IF v_appo > 0 then
         Same controls except:      insert into em (em_id,cod_sud,sex)
                   values (stud_name,cod_stud,sex_in);
    How I can insert in one stored procedure (or package) all these instructions and controls?
    Thanks in advance!

    In the following demonstation, I have changed the names of some of your variables, in order to standardize them. I have prefaced input parameters with p_ and local variables with v_ and followed them with the name of the column that they are associated with when appropriate. This avoids conflicts with any column names and makes the code easier to read and follow. I have also used table_name.column_name%type to specify the data type associated with the variables instead of using varchar2. That way, if the data type of the columns changes, the code does not have to be updated. This is standard practice.
    In your first insert statement, you have attempted to insert sex into the em table, but there is no sex column in the em table data that you displayed, so I removed the sex.
    Instead of using a complicated mess of views and such to check whether there is a room available and then assign it, I have used just one select statement to select an available room and used an exception clause that handles a no_data_found exception to deal with when there is no room available.
    I have greatly simplified your checking of dates within that select statement.
    You were on the right track with the outer joins and grouping and checking for single, double, or triple rooms. Instead of count, I have used sum and nvl2, so that only the occupied rooms are counted and the rows generated by the outer join are zeroes.
    I have used the nvl function to allow for null values in the input parameters, so that any room can be selected. I used dbms_random.random to ensure that the rows are ordered randomly, but you can leave that out if it is really not that critical that the result be truly random and any row will do. I have used rownum=1 in an outer query to select just one row.
    When you select from a table in pl/sql, you have to select into something. You cannot just issue a select statement, then use an if statement to compare some value in the select statement. For example, you cannot use "if rm.sex ..." you have to select rm.sex into a variable, like v_sex, then use "if v_sex ...". So, I have selected the result of the select statement into local variables, then used those variables for comparisons. I have also used those variables for inserting and updating the appropriate tables, rather than just using the original input parameters, since some of them may have been null.
    In the example below, I have demonstrated how the procedure rejects an unavailable room, accepts a specific available room, and randomly assigns a room.
    -- procedure:
    scott@ORA92> CREATE OR REPLACE PROCEDURE reserve_rooms
      2    -- input parameters:
      3    (p_em_id      IN em.em_id%TYPE,
      4       p_cod_stud   IN em.cod_stud%TYPE,
      5       p_bl_id      IN rm.bl_id%TYPE,
      6       p_fl_id      IN rm.fl_id%TYPE,
      7       p_rm_id      IN rm.rm_id%TYPE,
      8       p_sex          IN rm.sex%TYPE,
      9       p_date_start IN VARCHAR2,
    10       p_date_end   IN VARCHAR2)
    11  AS
    12    -- local variables:
    13    v_appo          INTEGER;
    14    v_bl_id          rm.bl_id%TYPE;
    15    v_fl_id          rm.fl_id%TYPE;
    16    v_rm_id          rm.rm_id%TYPE;
    17    v_rm_cat      rm.rm_cat%TYPE;
    18    v_sex          rm.sex%TYPE;
    19  BEGIN
    20    -- verify if the student is in table em:
    21    SELECT COUNT (*)
    22    INTO   v_appo
    23    FROM   em
    24    WHERE  em_id = p_em_id
    25    AND    cod_stud = p_cod_stud;
    26    -- if the student is not in table em, then insert new student:
    27    IF v_appo = 0 THEN
    28        INSERT INTO em (em_id, cod_stud)
    29        VALUES (p_em_id, p_cod_stud);
    30    END IF;
    31    BEGIN
    32        -- find available room:
    33        SELECT bl_id, fl_id, rm_id, sex, rm_cat
    34        INTO     v_bl_id, v_fl_id, v_rm_id, v_sex, v_rm_cat
    35        FROM     (SELECT rm.bl_id, rm.fl_id, rm.rm_id, rm.sex, rm.rm_cat
    36             FROM     rmpct, rm
    37             WHERE     rm.bl_id = rmpct.bl_id (+)
    38             AND     rm.fl_id = rmpct.fl_id (+)
    39             AND     rm.rm_id = rmpct.rm_id (+)
    40             AND     rm.bl_id = NVL (p_bl_id, rm.bl_id)
    41             AND     rm.fl_id = NVL (p_fl_id, rm.fl_id)
    42             AND     rm.rm_id = NVL (p_rm_id, rm.rm_id)
    43             AND     (rm.sex   = p_sex OR rm.sex = 0)
    44             AND     rmpct.date_start (+) <= TO_DATE (p_date_end, 'DD-MM-YYYY')
    45             AND     rmpct.date_end (+) >= TO_DATE (p_date_start, 'DD-MM-YYYY')
    46             GROUP     BY rm.bl_id, rm.fl_id, rm.rm_id, rm.sex, rm.rm_cat, rm.rm_std
    47             HAVING SUM (NVL2 (rmpct.rm_id (+), 1, 0))
    48                 < DECODE (rm_std, 'S', 1, 'D', 2, 'T', 3)
    49             ORDER     BY DBMS_RANDOM.RANDOM)
    50        WHERE ROWNUM = 1;
    51        -- reserve room:
    52        INSERT INTO rmpct (bl_id, fl_id, rm_id, em_id, cod_stud, date_start, date_end)
    53        VALUES (v_bl_id, v_fl_id, v_rm_id, p_em_id, p_cod_stud,
    54             TO_DATE (p_date_start, 'DD-MM-YYYY'),
    55             TO_DATE (p_date_end, 'DD-MM-YYYY'));
    56        -- update students:
    57        UPDATE em
    58        SET     bl_id = v_bl_id, fl_id = v_fl_id, rm_id = v_rm_id
    59        WHERE     em_id = p_em_id
    60        AND     cod_stud = p_cod_stud;
    61        -- update sex of room or apartment floor:
    62        IF v_sex = 0 THEN
    63          IF v_rm_cat = 'ROOM' THEN
    64            UPDATE rm
    65            SET    sex = p_sex
    66            WHERE  bl_id = v_bl_id
    67            AND    fl_id = v_fl_id
    68            AND    rm_id = v_rm_id;
    69          ELSIF v_rm_cat = 'APARTMENT' THEN
    70            UPDATE rm
    71            SET    sex = p_sex
    72            WHERE  bl_id = v_bl_id
    73            AND    fl_id = v_fl_id;
    74          END IF;
    75        END IF;
    76    EXCEPTION
    77        -- if no room is available:
    78        WHEN NO_DATA_FOUND THEN
    79          RAISE_APPLICATION_ERROR (-20001, 'Sorry, there is no such room available.');
    80    END;
    81  END reserve_rooms;
    82  /
    Procedure created.
    scott@ORA92> SHOW ERRORS
    No errors.
    -- rejects unavailable room of wrong sex:
    scott@ORA92> EXECUTE reserve_rooms ('BARBARA', 654321, 'BL1', 1, 101, 2, '04-02-2005', '10-02-2005')
    BEGIN reserve_rooms ('BARBARA', 654321, 'BL1', 1, 101, 2, '04-02-2005', '10-02-2005'); END;
    ERROR at line 1:
    ORA-20001: Sorry, there is no such room available.
    ORA-06512: at "SCOTT.RESERVE_ROOMS", line 79
    ORA-06512: at line 1
    -- accepts available room of same sex:
    scott@ORA92> EXECUTE reserve_rooms ('BARBARA', 654321, 'BL1', 1, 103, 2, '04-02-2005', '10-02-2005')
    PL/SQL procedure successfully completed.
    -- assigns random available room of same or no sex:
    scott@ORA92> EXECUTE reserve_rooms ('BARBARA', 654321, NULL, NULL, NULL, 2, '11-02-2005', '23-02-2005')
    PL/SQL procedure successfully completed.
    -- results:
    scott@ORA92> -- one and only one row added to em table:
    scott@ORA92> SELECT * FROM em WHERE em_id = 'BARBARA'
      2  /
    EM_ID           BL_I      FL_ID      RM_ID   COD_STUD
    BARBARA         BL1           1        102     654321
    scott@ORA92> -- rooms reserved and other people who have reserved same room
    scott@ORA92> -- (there are 3 who reserved a double room, but only 2 at a time):
    scott@ORA92> SELECT *
      2  FROM   rmpct
      3  WHERE  (bl_id, fl_id, rm_id) IN
      4           (SELECT bl_id, fl_id, rm_id
      5            FROM   rmpct
      6            where  em_id = 'BARBARA')
      7  /
    EM_ID           BL_      FL_ID      RM_ID DATE_STAR DATE_END    COD_STUD
    BARBARA         BL1          1        102 11-FEB-05 23-FEB-05     654321
    SERAFINO        BL1          1        102 12-FEB-04 19-FEB-04     589920
    VIDAL           BL1          1        102 16-FEB-04 01-MAR-04     602877
    SERAFINO        BL1          1        103 01-FEB-04 15-FEB-04     589920
    TAKEM           BL1          1        103 04-FEB-05 10-FEB-05     569673
    BARBARA         BL1          1        103 04-FEB-05 10-FEB-05     654321
    6 rows selected.
    scott@ORA92> -- rooms reserved are all correct sex
    scott@ORA92> -- (note that room 102 was updated from 0 to 2):
    scott@ORA92> SELECT *
      2  FROM   rm
      3  WHERE  (bl_id, fl_id, rm_id) IN
      4           (SELECT bl_id, fl_id, rm_id
      5            FROM   rmpct
      6            where  em_id = 'BARBARA')
      7  /
    BL_      FL_ID      RM_ID        SEX R RM_CAT
    BL1          1        102          2 D ROOM
    BL1          1        103          2 T ROOM
    scott@ORA92>

  • Sql Developer - View source code of procedures, functions & packages in another schema

    Our developers need the ability to view procedures, function, packages etc. in the production database (using SQL DEVELOPER).  They don't have access to sign on as the owner of these
    objects in Production.  They must use their own limited access UserID for this purpose.
    This limited access UserID has been granted select privilege on DBA_SOURCE & DBA_OBJECTS.  The developers need the ability to view the source of these object via
    the tree view in SQL DEV.  They should be able to click on "other users" in the SQL DEV tree view and see a listing of the owner schema objects.  Then they should
    be able to select the desired object and view the source code.  These developers are used to using GUI interfaces.  Selecting from DBA_SOURCE would not be an
    option for them.
    I understand that if the limited user is granted SELECT ANY DICTIONARY or SELECT_CATALOG_ROLE then this functionality will work.  The problem is those
    privileges/roles  provide much more access than should be granted to these limited access users. Granting DBA to these users is also not an option.
    In TOAD and other end-user tools this functionality works when only select privilege on DBA_SOURCE & DBA_OBJECTS has been granted.  We need this same functionality
    in SQL DEV.
    While searching this forum and the internet, I see that other installations have this same issue.
    Please enhance SQL Developer with this functionality. 
    Thank you, ellen

    Just to double check that I'm interpreting the problem correctly, is the following true:
    select * from all_objects where object_name = 'DBA_SOURCE'
    returns nothing
    select * from dba_source where name = your PL/SQL module
    returns all the code

  • Apex 4 error ORA-04042 procedure, function, package body does not exist

    Hi all,
    I was instaling Oracle Application Expres 10g on Linux ubuntu and I was download and unzip apex 4
    on /usr/lib/oracle/xe/
    then connect as SYS as sysdba with pass and
    start
    @/usr/lib/oracle/xe/apex/apexins SYSAUX SYSAUX TEMP /i/
    installation starting
    ... after 5 minutes theres end of log file>
    I. O R A C L E S Y S I N S T A L L P R O C E S S
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/dev_grants.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/core_grants.sql"
    ...CONNECT as the Oracle user who will own the APEX engine
    Session altered.
    III. I N S T A L L A P E X P A C K A G E S P E C S
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_plsql_editor.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_model_api.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_f4000_util.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_plugin_f4000.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_image_generator.sql"
    Installing Team Development objects
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/team_tab.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_team.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_team_api.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_team_gen_api.sql"
    Installing Application Migration Workshop objects
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_create_ddl.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_create_ddl.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_exporter_ins.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/mig_views.sql"
    ...installing Application Migration Workshop package spec
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_acc_load.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_load_xml.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_olb_load_xml.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_update_apx_app.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_utilities.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frmmenu_load_xml.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_rpt_load_xml.sql"
    ...install Application Migration Workshop package body
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_acc_load.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_load_xml.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_olb_load_xml.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_update_apx_app.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frm_utilities.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_frmmenu_load_xml.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_mig_rpt_load_xml.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_item_comps.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_translation_utilities.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copy.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copy_lov.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copy_item.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copy_button.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_translation_utilities.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/seed.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/sync.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/layout.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_lov_used_on_pages.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_query_builder.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_sw_object_feed.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_load_data.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_load_excel_data.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copy_metadata.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copyu.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_tab_mgr.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/generate_ddl.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/table_drill.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_download.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_copy_page.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/generate_table_api.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_gen_hint.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_xliff.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_create_model_app.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/apex_admin.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_help.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_data_quick_flow.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_theme_files.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_session_mon.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_sw_page_calls.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_wiz_confirm.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_page_map.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_drag_layout.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_dataload_xml.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/apex_ui_default_update.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/apex_mig_projects_update.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_install_wizard.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_dictionary.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_advisor.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_search.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_f4000_plugins.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_4000_ui.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_4050_ui.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_workspace_reports.sql"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_f4000_p4150.sql"
    timing for: Development Package Specs
    Elapsed: 00:00:00.02
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_plsql_editor.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_model_api.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_f4000_util.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_plugin_f4000.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_image_generator.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/layout.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_query_builder.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_sw_object_feed.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_load_data.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_load_excel_data.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copy_metadata.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/copyu.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_tab_mgr.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/generate_ddl.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/table_drill.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_download.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_copy_page.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/generate_table_api.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_gen_hint.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_translation_utilities.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_xliff.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_create_model_app.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_help.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_data_quick_flow.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_theme_files.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_session_mon.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_sw_page_calls.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_wiz_confirm.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_page_map.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_drag_layout.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_dataload_xml.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/apex_ui_default_update.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/apex_mig_projects_update.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_install_wizard.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_dictionary.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_advisor.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_search.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_f4000_plugins.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_4000_ui.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_4050_ui.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_translation_utilities.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_team.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_team_api.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_team_gen_api.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_workspace_reports.plb"
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_flow_f4000_p4150.plb"
    ...install demonstration Oracle APEX application package specs
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/collections_showcase.sql"
    ...install demonstration Oracle APEX application package bodies
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/collections_showcase.plb"
    ...install demonstration tables
    SP2-0310: unable to open file "/usr/lib/oracle/xe/apex/coreinscore/wwv_demo_tab.sql"
    timing for: Development Package Bodies
    Elapsed: 00:00:00.03
    grant execute on wwv_mig_acc_load to public
    ERROR at line 1:
    ORA-04042: procedure, function, package, or package body does not exist
    is there any solution?
    regards
    Gordan

    Install 4.0 pass ok!
    1. I was changing apexins.sql
    as PREFIX='@/usr/lib/oracle/xe/apex/'
    and add path to coreins.sql as @/usr/lib/oracle/xe/apex/coreins.sql
    2. create two folders coreinscore and coreinsbuild and copy all files from folder core and folder build
    3. copy and rename endins.sql as coreinsendins.sql
    after 10 min instalation pass ok!
    Gordan
    Edited by: useruseruser on Jun 29, 2010 2:12 PM

  • Calling of stored procedure in package

    Hi,
    I have one stored procedure A. And one package of name P1.
    I have execute previlage of package but not having any previlge of stored procedure.
    and In package P1 stored procedure A is called. then this packege is work or it will genrate an Error?

    Oracle users - userA, userB
    Stored procedure - procedure1
    Package - package1
    Who is owner of procedure1 and package1?
    Which privileges of userA/userB on procedure1 and package1?

  • How can I compile all functions, procedures and packages with a script?

    I need to compile all functions, procedures and packages of 5 schemas (users) with a script.
    How can I do it?
    Thanks!

    you can create a script to select all invalid objects in those schemas Since Oracle 8 introduced NDS this approach has struck me as a trifle old fashioned. It's much simpler to loop round the query in PL/SQL and use EXECUTE IMMEDIATE to fire off the DDL statements. No scripts, no muss, no fuss.
    Having said that, the problem with this approach and also with using DBMS_UTILITY.COMPILE_SCHEMA is that they do not compile all the invalid objects in dependency order. This may result in programs being invalidated by the subsequent compilation of dependencies. This is due to the introduction of Java into the database.
    The UTLRP script is much better, because it (usually) avoids cyclic references. But you still may need to run it more than once.
    In general it is better to avoid sledgehammer recompilations (like DBMS_UTILITY.COMPILE_SCHEMA, which starts by invalidating all the objects). If we have twenty invalid objects, nineteen of which are dependencies of the twentieth, we actually only need to recompile the master object, as recompiling it will trigger the recompilation of all the others.
    Cheers, APC

  • Oracle stored Procedure and Packages in CR4E

    Hi,
    I want to use Stored Procedure in CR4E. I don't know how to use Stored Procedures and packages in Crystal Reports for Eclipse. In the data source explorer I can only see the Tables, Views and Stored Procedures but not packages from my Schema and when I can only drag & drop the Tables and Views into the Field Explorer, I can't drag & Drop the Stored Procedures.
    I managed to attached the stored procedure from CR studio. I opened the report in CR4E and I can see the stored procedure and can preview the data. When I try to run the report and override the datasource, it throws oracle error saying "ORA-01008: Not all variables bound". When I tried to use the option
    DBOptions._doNotVerifyDB
    while replacing connection I get the this error
    java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
         at java.lang.Boolean.compareTo(Boolean.java:26)
         at com.crystaldecisions.sdk.occa.report.lib.ClonableMap.hasContent(ClonableMap.java:112)
         at com.crystaldecisions.client.helper.CloneUtil.hasContent(CloneUtil.java:135)
         at com.crystaldecisions.sdk.occa.report.data.ConnectionInfo.hasContent(SourceFile:151)
         at com.crystaldecisions.client.helper.CloneUtil.hasContent(CloneUtil.java:135)
         at com.crystaldecisions.sdk.occa.report.data.Table.hasContent(SourceFile:286)
         at com.crystaldecisions.sdk.occa.report.data.Procedure.hasContent(SourceFile:212)
         at com.crystaldecisions.sdk.occa.report.lib.ArrayListMerger.haveMatchingContent(ArrayListMerger.java:232)
         at com.crystaldecisions.sdk.occa.report.lib.ArrayListMerger.mergePass(ArrayListMerger.java:138)
         at com.crystaldecisions.sdk.occa.report.lib.ArrayListMerger.merge(ArrayListMerger.java:86)
         at com.crystaldecisions.sdk.occa.report.lib.ControllableList.copyTo(ControllableList.java:68)
         at com.crystaldecisions.sdk.occa.report.data.Database.copyTo(SourceFile:105)
         at com.crystaldecisions.sdk.occa.report.lib.ControllableHelper.copyToPreservingReferences(ControllableHelper.java:153)
         at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.a(SourceFile:2556)
         at com.crystaldecisions.sdk.occa.report.application.b9.onDataSourceChanging(SourceFile:315)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:971)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:4078)
         at com.crystaldecisions.sdk.occa.report.application.bv.new(SourceFile:121)
         at com.crystaldecisions.sdk.occa.report.application.bv.int(SourceFile:91)
         at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.performDo(SourceFile:151)
         at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.a(SourceFile:106)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:2159)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.mapFields(SourceFile:4061)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:3914)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.replaceConnection(SourceFile:3880)
         at
    Please advice if Stored procedures and packages are supported in CR4E ?

    Hi, Jack76,
    According to the [CR4E Release Notes|http://help.sap.com/businessobject/product_guides/cr4E/en/cr4e_relnotes_en.pdf] (available from the [CR4E Download page|http://www.businessobjects.com/campaigns/forms/downloads/crystal/eclipse/datasave.asp]), stored procedures are supported, as long as they don't use parameters that need null values.
    I don't see any references to packages.
    Bryan

  • Read access to procedures,function,packages and triggers

    Hi,
    I created a user with CREATE SESSION,SELECT ANY TABLE privilege. My objective is to create a user with read only access to other schemas. But the newly created user is not able to read procedures,function,packages and triggers. The new user need read access to procedures,function,packages and triggers. What is the priviege required for this access? Please help me to resolve this issue.
    Regards,
    Mat.

    Hi,
    Grant select all will give select privileges to all schema level objects except procedures,function,packages and triggers. But I need to grant read privileges on these objects to newly created user.
    Regards,
    Mat.

  • How to hide Procedures,Functions,Packages source code?

    Hi,
    I tried to find a way to hide all our application oracle
    database's all Procedures, Functions, Packages PL/SQL Source
    code. But I haven't find the way. Could Oracle do this? ( MS SQL
    Server can)
    Thanks in advance,
    Cheng
    null

    cheng (guest) wrote:
    : Hi,
    : I tried to find a way to hide all our application oracle
    : database's all Procedures, Functions, Packages PL/SQL Source
    : code. But I haven't find the way. Could Oracle do this? ( MS
    SQL
    : Server can)
    : Thanks in advance,
    : Cheng
    Hi Cheng,
    You may be interested in what Quintessence Systems (Berkshire,
    United Kingdom - http://www.quintessence.demon.co.uk) have
    developed.
    Addressed at precisely this kind of problem area, we've
    developed a technology called F2J (Formula to Java). F2J
    automatically converts stored PL/SQL (Procedures, Functions and
    Packages) to Java classes which can be loaded and run as Stored
    Procedures in an Oracle8i database.
    If you think this may be able to assist you then check out the
    website for further info or email me directly.
    How this is helpful.
    Elton Barendse
    null

  • ORA-04044: procedure, function, package, or type is not allowed here

    Hi,
    I am trying to build an object hierarchy.The object hirarcy is for a multi division, multi department, multi cost center and multi operation Organisation.Multiple department can store into multiple divisions, multiple cost center can store into multiple departments, multiple operations can store into multiple cost centers.
    The structure I try to built like this:
    create type div_obj_new as object
    (id number,
    divdesc varchar2(100)
    create type div_obj_tab as
    table of div_obj_new
    create type dept_obj_new as object
    (id number,
    deptdesc varchar2(100),
    dept_div number
    create type dept_obj_tab as
    table of dept_obj_new
    create type cctr_obj_new as object
    (id number,
    cctrdesc varchar2(100),
    cctr_dept number
    create type cctr_obj_tab as
    table of cctr_obj_new
    create type oper_obj_new as object
    (id number,
    operdesc varchar2(100),
    oper_cctr number
    create type oper_obj_tab as
    table of oper_obj_new
    ==========================
    create type div_obj_type as object
    (divid div_obj_tab)
    NOT FINAL
    create type dept_obj_type under div_obj_type
    (deptid dept_obj_tab)
    NOT FINAL
    create type cctr_obj_type under dept_obj_type
    (cctrid cctr_obj_tab)
    NOT FINAL
    create type oper_obj_type under cctr_obj_type
    (operid oper_obj_tab)
    NOT FINAL
    =======This Table creation is not working=================
    create table organisation
    (div div_obj_type,
    dept dept_obj_type,
    cctr cctr_obj_type,
    oper oper_obj_type)
    nested table div store as division_table
    nested table dept store as department_table
    nested table cctr store as costcntr_table
    nested table oper store as operation_table
    nested table oper store as operation_table
    ERROR at line 9:
    ORA-22912: specified column or attribute is not a nested table type
    =========================================================
    Then I try to insert record into the div_obj_type instead of organisation table as it was not working.
    The insert script is as follows:
    ===================================
    insert into div_obj_type values
    div_obj_tab
    (div_obj_new(01,'Division 01'),
    div_obj_new(02,'Division 02'),
    div_obj_new(03,'Division 03'),
    div_obj_new(04,'Division 04')
    dept_obj_tab
    dept_obj_new(10,'Department 10',1),
    dept_obj_new(11,'Department 11',1),
    dept_obj_new(12,'Department 12',2),
    dept_obj_new(13,'Department 13',3),
    dept_obj_new(14,'Department 14',4),
    dept_obj_new(15,'Department 15',5),
    dept_obj_new(16,'Department 16',6),
    dept_obj_new(17,'Department 17',7)
    cctr_obj_tab
    cctr_obj_new(100,'Cost Center 100',10),
    cctr_obj_new(101,'Cost Center 101',11),
    cctr_obj_new(100,'Cost Center 102',12),
    cctr_obj_new(100,'Cost Center 103',13),
    cctr_obj_new(100,'Cost Center 104',14),
    cctr_obj_new(100,'Cost Center 105',15),
    cctr_obj_new(100,'Cost Center 106',16),
    cctr_obj_new(100,'Cost Center 107',17),
    cctr_obj_new(100,'Cost Center 108',10),
    cctr_obj_new(100,'Cost Center 109',11),
    cctr_obj_new(100,'Cost Center 110',12)
    oper_obj_tab
    oper_obj_new(1000,'Operation 1000',100),
    oper_obj_new(1000,'Operation 1001',101),
    oper_obj_new(1000,'Operation 1002',102),
    oper_obj_new(1000,'Operation 1003',103),
    oper_obj_new(1000,'Operation 1004',104),
    oper_obj_new(1000,'Operation 1005',105),
    oper_obj_new(1000,'Operation 1006',106),
    oper_obj_new(1000,'Operation 1007',107),
    oper_obj_new(1000,'Operation 1008',108),
    oper_obj_new(1000,'Operation 1009',109),
    oper_obj_new(1000,'Operation 1010',110),
    oper_obj_new(1000,'Operation 1011',101),
    oper_obj_new(1000,'Operation 1012',102),
    oper_obj_new(1000,'Operation 1013',103),
    oper_obj_new(1000,'Operation 1014',104),
    oper_obj_new(1000,'Operation 1015',105),
    oper_obj_new(1000,'Operation 1016',106),
    oper_obj_new(1000,'Operation 1017',107),
    oper_obj_new(1000,'Operation 1018',108)
    insert into div_obj_type values
    ERROR at line 1:
    ORA-04044: procedure, function, package, or type is not allowed here
    Actually I want to create an object view or object table with all the details of division, department , cost center and operation and it will store depending upon the respective upper level hirarcy 's id.For eg. department details can be fetched through division id etc..
    So I can't figure out what to do for this kind of structure and how to do that.
    I am running Oracle Release 2 (9.2.0.1.0) for Windows 2000.
    Any help , advice or suggestions will be appreciated.
    Thanks & Regards
    Nihar

    Hi Cameron,
    Thanks for your great suggestion.Actually what you have suggested is correct and it was tested by me correctly.But actually I want to store records in the multiple objects hirarcy depending upon the respective upper level hirarcy 's id.For say how can I retrive all records related to divisionID which is in the top level hirarchy? So by selecting divisionID=01, how can I easily select all depts,cost centers and Operation details?
    Again I have another problem , when try to retrive record using PL/SQL I got some problem.
    Structure as created above.Again I am giving here.
    create type div_obj_new as object
    (id number,
    divdesc varchar2(100)
    create type div_obj_tab as
    table of div_obj_new
    create type dept_obj_new as object
    (id number,
    deptdesc varchar2(100),
    dept_div number
    create type dept_obj_tab as
    table of dept_obj_new
    create type cctr_obj_new as object
    (id number,
    cctrdesc varchar2(100),
    cctr_dept number
    create type cctr_obj_tab as
    table of cctr_obj_new
    create type oper_obj_new as object
    (id number,
    operdesc varchar2(100),
    oper_cctr number
    create type oper_obj_tab as
    table of oper_obj_new
    create table organisation
    (div div_obj_tab,
    dept dept_obj_tab,
    cctr cctr_obj_tab,
    oper oper_obj_tab)
    nested table div store as division_table
    nested table dept store as department_table
    nested table cctr store as costcntr_table
    nested table oper store as operation_table
    insert into organisation values
    div_obj_tab
    (div_obj_new(01,'Division 01'),
    div_obj_new(02,'Division 02'),
    div_obj_new(03,'Division 03'),
    div_obj_new(04,'Division 04')
    dept_obj_tab
    dept_obj_new(10,'Department 10',1),
    dept_obj_new(11,'Department 11',1),
    dept_obj_new(12,'Department 12',2),
    dept_obj_new(13,'Department 13',3),
    dept_obj_new(14,'Department 14',4),
    dept_obj_new(15,'Department 15',5),
    dept_obj_new(16,'Department 16',6),
    dept_obj_new(17,'Department 17',7)
    cctr_obj_tab
    cctr_obj_new(100,'Cost Center 100',10),
    cctr_obj_new(101,'Cost Center 101',11),
    cctr_obj_new(100,'Cost Center 102',12),
    cctr_obj_new(100,'Cost Center 103',13),
    cctr_obj_new(100,'Cost Center 104',14),
    cctr_obj_new(100,'Cost Center 105',15),
    cctr_obj_new(100,'Cost Center 106',16),
    cctr_obj_new(100,'Cost Center 107',17),
    cctr_obj_new(100,'Cost Center 108',10),
    cctr_obj_new(100,'Cost Center 109',11),
    cctr_obj_new(100,'Cost Center 110',12)
    oper_obj_tab
    oper_obj_new(1000,'Operation 1000',100),
    oper_obj_new(1000,'Operation 1001',101),
    oper_obj_new(1000,'Operation 1002',102),
    oper_obj_new(1000,'Operation 1003',103),
    oper_obj_new(1000,'Operation 1004',104),
    oper_obj_new(1000,'Operation 1005',105),
    oper_obj_new(1000,'Operation 1006',106),
    oper_obj_new(1000,'Operation 1007',107),
    oper_obj_new(1000,'Operation 1008',108),
    oper_obj_new(1000,'Operation 1009',109),
    oper_obj_new(1000,'Operation 1010',110),
    oper_obj_new(1000,'Operation 1011',101),
    oper_obj_new(1000,'Operation 1012',102),
    oper_obj_new(1000,'Operation 1013',103),
    oper_obj_new(1000,'Operation 1014',104),
    oper_obj_new(1000,'Operation 1015',105),
    oper_obj_new(1000,'Operation 1016',106),
    oper_obj_new(1000,'Operation 1017',107),
    oper_obj_new(1000,'Operation 1018',108)
    ===============
    declare
    div number;
    divdesc varchar2(100);
    divdetails varchar2(100);
    dept number;
    deptdesc varchar2(100);
    deptdetails varchar2(100);
    cctr number;
    cctrdesc varchar2(100);
    cctrdetails varchar2(100);
    oper number;
    operdesc varchar2(100);
    operdetails varchar2(100);
    cursor c_div is
    select d.id , d.divdesc from table(select div from organisation) d
    where d.id=1;
    --union
    cursor c_dept is
    select dp.id , dp.deptdesc "Dept Details" from table(select dept from organisation) dp
    where dp.dept_div=1;
    --union
    cursor c_cctr is
    select cc.id , cc.cctrdesc "Cctr Details" from table(select cctr from organisation ) cc
    where cc.cctr_dept=10;
    --union
    cursor c_oper is
    select op.id , op.operdesc "Oper Details" from table(select oper from organisation) op
    where op.oper_cctr=100;
    TYPE oper_type IS RECORD
    (oper_no NUMBER,
    oper_desc VARCHAR(50));
    TYPE cctr_type IS RECORD
    (cctr_no NUMBER,
    cctr_desc VARCHAR(50),
         oper_detl oper_type);
    TYPE dept_type IS RECORD
    (dept_no NUMBER,
    dept_desc VARCHAR(50),
         cctr_detl cctr_type);
    TYPE div_type IS RECORD
    (div_no NUMBER,
    div_desc VARCHAR2(50),
    dept_detl dept_type);
         division_rec div_type;
    begin
    for i_div in c_div%rowcount
         loop
         exit when c_div%notfound;
         division_rec.div_no:=i_div.id;
         division_rec.div_desc:=i_div.divdesc;
         dbms_output.put_line('Division details = ' || division_rec.div_no || division_rec.div_desc);
    --end loop;
    for i_dept in c_dept%rowcount
         loop
         exit when c_dept%notfound;
         select dp.id , dp.deptdesc ,
         into
         division_rec.dept_detl.dept_no, division_rec.dept_detl.dept_desc
         from
         table(select dept from organisation) dp
         where dp.dept_div=division_rec.div_no;
    -- division_rec.dept_detl.dept_no:=c_dept.id;
    -- division_rec.dept_detl.dept_desc:=c_dept.deptdesc;
         dbms_output.put_line('Department details = ' || division_rec.dept_detl.dept_no ||      
    division_rec.dept_detl.dept_desc);
    --end loop;
         for i_cctr in c_cctr
              loop
              exit when c_cctr%notfound;
              select cc.id , cc.cctrdesc
              into
              division_rec.dept_detl.cctr_detl.cctr_no ,           
    division_rec.dept==_detl.cctr_detl.cctr_desc
              from
              table(select cctr from organisation ) cc
              where cc.cctr_dept=division_rec.dept_detl.dept_no;
    -- division_rec.dept_detl.cctr_detl.cctr_no:=c_cctr.id;
    -- division_rec.dept_detl.cctr_detl.cctr_desc:=c_cctr.cctrdesc;
         dbms_output.put_line('Cost Center details = ' || division_rec.dept_detl.cctr_detl.cctr_no ||
         division_rec.dept_detl.cctr_detl.cctr_desc);
    --end loop;
              for i_oper in c_oper%rowcount
                   loop
                   exit when c_oper%notfound;
              select op.id , op.operdesc
              into
              division_rec.dept_detl.cctr_detl.oper_detl.oper_no,           
    division_rec.dept_detl.cctr_detl.oper_detal.oper_desc
              from
              table(select oper from organisation) op
              where op.oper_cctr=division_rec.dept_detl.cctr_detl.cctr_no;
    -- division_rec.dept_detl.cctr_detl.oper_detl.oper_no:=c_oper.id;
    -- division_rec.dept_detl.cctr_detl.oper_detal.oper_desc:=c_oper.operdesc;
         dbms_output.put_line('Operation details = ' ||
    division_rec.dept_detl.cctr_detl.oper_detl.oper_no ||
    division_rec.dept_detl.cctr_detl.oper_detal.oper_desc);
    end loop;
    end loop;
    end loop;
    end loop;
    end;
    for i_div in c_div%rowcount
    ERROR at line 46:
    ORA-06550: line 46, column 14:
    PLS-00999: implementation restriction (may be temporary)
    ORA-06550: line 46, column 1:
    PL/SQL: Statement ignored
    New version of PL/SQL bloc
    ==============================
    declare
    div number;
    divdesc varchar2(100);
    divdetails varchar2(100);
    dept number;
    deptdesc varchar2(100);
    deptdetails varchar2(100);
    cctr number;
    cctrdesc varchar2(100);
    cctrdetails varchar2(100);
    oper number;
    operdesc varchar2(100);
    operdetails varchar2(100);
    cnt_div number;
    cnt_dept number;
    cnt_cctr number;
    cnt_oper number;
    cursor c_div is
    select d.id , d.divdesc from table(select div from organisation) d
    where d.id=1;
    --union
    cursor c_dept is
    select dp.id , dp.deptdesc from table(select dept from organisation) dp
    where dp.dept_div=1;
    --union
    cursor c_cctr is
    select cc.id , cc.cctrdesc from table(select cctr from organisation ) cc
    where cc.cctr_dept=10;
    --union
    cursor c_oper is
    select op.id , op.operdesc from table(select oper from organisation) op
    where op.oper_cctr=100;
    TYPE oper_type IS RECORD
    (oper_no NUMBER,
    oper_desc VARCHAR(50));
    TYPE cctr_type IS RECORD
    (cctr_no NUMBER,
    cctr_desc VARCHAR(50),
         oper_detl oper_type);
    TYPE dept_type IS RECORD
    (dept_no NUMBER,
    dept_desc VARCHAR(50),
         cctr_detl cctr_type);
    TYPE div_type IS RECORD
    (div_no NUMBER,
    div_desc VARCHAR2(50),
    dept_detl dept_type);
         division_rec div_type;
    begin
    /*select count(*) into cnt_div from table(select div from organisation) d
    where d.id=1;*/
    for i_div in c_div
         loop
         exit when c_div%notfound;
         division_rec.div_no:=i_div.id;
         division_rec.div_desc:=i_div.divdesc;
         dbms_output.put_line('Division details = ' || division_rec.div_no || division_rec.div_desc);
    --end loop;
    /*select count(*) into cnt_dept from table(select dept from organisation) dp
    where dp.dept_div=i_div.id;*/
    for i_dept in c_dept
         loop
         exit when c_dept%notfound;
         select dp.id , dp.deptdesc
         into
         division_rec.dept_detl.dept_no, division_rec.dept_detl.dept_desc
         from
         table(select dept from organisation) dp
         where dp.dept_div=division_rec.div_no;
    -- division_rec.dept_detl.dept_no:=c_dept.id;
    -- division_rec.dept_detl.dept_desc:=c_dept.deptdesc;
         dbms_output.put_line('Department details = ' || division_rec.dept_detl.dept_no ||      division_rec.dept_detl.dept_desc);
    --end loop;
    /*select count(*) into cnt_cctr from table(select cctr from organisation ) cc
    where cc.cctr_dept=division_rec.dept_detl.dept_no;*/
         for i_cctr in c_cctr
              loop
              exit when c_cctr%notfound;
              select cc.id , cc.cctrdesc
              into
              division_rec.dept_detl.cctr_detl.cctr_no ,           division_rec.dept_detl.cctr_detl.cctr_desc
              from
              table(select cctr from organisation ) cc
              where cc.cctr_dept=division_rec.dept_detl.dept_no;
    -- division_rec.dept_detl.cctr_detl.cctr_no:=c_cctr.id;
    -- division_rec.dept_detl.cctr_detl.cctr_desc:=c_cctr.cctrdesc;
         dbms_output.put_line('Cost Center details = ' || division_rec.dept_detl.cctr_detl.cctr_no ||      division_rec.dept_detl.cctr_detl.cctr_desc);
    --end loop;
    /*select count(*) into c_oper from table(select oper from organisation) op
    where op.oper_cctr=division_rec.dept_detl.cctr_detl.cctr_no;*/
              for i_oper in c_oper
                   loop
                   exit when c_oper%notfound;
              select op.id , op.operdesc
              into
              division_rec.dept_detl.cctr_detl.oper_detl.oper_no,           division_rec.dept_detl.cctr_detl.oper_detl.oper_desc
              from
              table(select oper from organisation) op
              where op.oper_cctr=division_rec.dept_detl.cctr_detl.cctr_no;
    -- division_rec.dept_detl.cctr_detl.oper_detl.oper_no:=c_oper.id;
    -- division_rec.dept_detl.cctr_detl.oper_detl.oper_desc:=c_oper.operdesc;
         dbms_output.put_line('Operation details = ' || division_rec.dept_detl.cctr_detl.oper_detl.oper_no || division_rec.dept_detl.cctr_detl.oper_detl.oper_desc);
    end loop;
    end loop;
    end loop;
    end loop;
    end;
    declare
    ERROR at line 1:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at line 64
    I hope you might have the solutions.
    Thanks & Regards
    Nihar

  • How to Export only some tables with procedures and packages

    Hi...
    I want to export only some tables and packages and procedures. Can anybody please guide me how to do this.
    Thanks in advance.......
    pal

    could you please more elobarate in your question? do you want to export data from tables or you want to get the table structure, source of procedures and packages?
    Thanks
    M Thiyagarajan

  • ORA-04042: procedure, function, package, or package body does not exist

    getting following error
    I have logged on as sys
    GRANT EXECUTE ON CTXSYS.CTX_DDL TO public
    ERROR at line 1:
    ORA-04042: procedure, function, package, or package body does not exist
    does it need Oracle text installed
    comp_name
    Oracle Database Catalog Views
    Oracle Database Packages and Types
    Oracle Workspace Manager
    JServer JAVA Virtual Machine
    Oracle XDK
    Oracle Database Java Packages
    Oracle Expression Filter
    Oracle XML Database
    Oracle Rules Manager
    Oracle Multimedia
    Oracle Real Application Clusters

    912919 wrote:
    getting following error
    I have logged on as sys
    GRANT EXECUTE ON CTXSYS.CTX_DDL TO public
    ERROR at line 1:
    ORA-04042: procedure, function, package, or package body does not exist
    does it need Oracle text installed
    comp_name
    Oracle Database Catalog Views
    Oracle Database Packages and Types
    Oracle Workspace Manager
    JServer JAVA Virtual Machine
    Oracle XDK
    Oracle Database Java Packages
    Oracle Expression Filter
    Oracle XML Database
    Oracle Rules Manager
    Oracle Multimedia
    Oracle Real Application Clustersit worked for me.
    09:10:19 SQL> GRANT EXECUTE ON CTXSYS.CTX_DDL TO public;
    Grant succeeded.
    09:10:23 SQL>

  • Procedures, Functions & Packages Documentation Generated

    Hi folks:
    Here at my work, I have more than 500 functions, procedures & packages.
    As part of our company procedures, every single DB Object, module, report, etc... must have a technical documentation.
    It is, kind of waste of time, to write for every single piece of program or DB Object, the Technical Documentation.
    I know (for the Java files) there is a utility which take the comments inside the java code a generate a documentation file.
    Do you know if ORACLE have something similar (any utility, plug-in or aything else) or do you know if a third-party software could do that.
    Thanks a lot for your help.
    Abdel

    Followups here (duplicate):
    Procedures, Functions & Packages Documentation

Maybe you are looking for

  • Another error -8 :(

    Well I've been happy with my purchase of the MacBook up until I couldnt get my iChat AV working (except for once for a minute). Brand new MacBook 2.16ghz. I've tried using AirPort to connect wirelessly and with an ethernet cord to my Linksys WRT54GX4

  • I have a KT4V and would like to install ati 9600XT. Do I need to upgrade BIOS?

    I have a KT4V (MS6712) running version 1.0 BIOS (never updated).  I tried an ATI Radeon 9600XT a couple of days ago. The system and display went nuts.  I figured the card was DOA, but I have since reaad on this board that a newer version of the BIOS

  • Removing the Order from Campaign in /SAPAPO/CDPS_FDISHEU, but it is not reflecting in DS_ board.

    Hello Experts, we wan to create some custom logic to Remove some orders from campaign. For this we have created a function and removing the order from campaign in /SAPAPO/CDPS_FDISHEU->BEFORE method. but the changes which i am doing they get save imm

  • How to store xml files in oracle as xmltype

    public class writexmldb2      public static void main(String args[]) throws SQLException, FileNotFoundException           DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());           Connection conn = DriverManager.getConnection("jd

  • Target Load Order Bug?

    Version:  12c I've set the Target Load Order to: T1,T2,T3 But it always generates the jobs as: Load T3 - IKM Oracle Merge Load T1_T2 - Unknown KM (this is actually IKM Oracle Multi-Insert.GLOBAL) Please help!!!