Executing Procedure through Jobs

I have a UI where user can enter a sql statement as well as a procedure (somewhat ADHOC query type)..The sql statement or the procedure is stored in a table in a column and a job is created to execute the statement on a particular day.
whenever the job is created and executed if the statement is sql then no problem but when it is Procedure it fails
Can any one help me how to execute that procedure

As you know what your interface consists of, and we don't, you should be the best person to answer the question !
If it tries to run them the same way it will obvious fail because sqlplus runs scripts with @ or start but procedures with execute.
You also have the option of using DBMS_JOB.

Similar Messages

  • Executing Procedure through job

    Hi All,
    I have created three procedures.
    1. IT_DEFAULTER_REP - counts number of entries in a table and if it is 0 then send mail.
    2. PUSH_IT_DEFAULTER_REP - it execute IT_DEFAULTER_REP every 1 min which generates mail
    3. PUSH_MAIL_QUEUE - it executes apex_mail.push_queue to push all mails in queue
    If I directly run IT_DEFAULTER_REP like
    BEGIN
    IT_DEFAULTER_REP;
    END;
    It generates mail and PUSH_MAIL_QUEUE pushes the mail.
    but what I want is: PUSH_IT_DEFAULTER_REP runs automatically besides me executing it.
    Here is code:
    create or replace PROCEDURE IT_DEFAULTER_REP
    IS
    v_count number;
    BEGIN
    FOR c1 in
    (Select person_id,person_name,username,person_email
    from it_people
    where assigned_project =
    (select project_id
    from it_projects
    where project_name = 'Infra'))
    LOOP
    SELECT count(*)
    into v_count
    from it_issues_progress
    where upper(modified_by) = upper(c1.username)
    and to_char(trunc(modified_on),'dd-mon-yy') = to_char((sysdate-1),'dd-mon-yy') ;
    if c1.person_email is not null and v_count = 0 then
    APEX_MAIL.SEND(
    p_to => c1.person_email,
    p_from => c1.person_email,
    p_body => 'TESTING DEFAULTER LIST REPORT',
    p_subj => 'TESTING DEFAULTER LIST REPORT');
    END IF;
    END LOOP;
    END;
    create or replace procedure push_it_defaulter_rep as
    jobno number;
    BEGIN
    DBMS_JOB.SUBMIT(
    job => jobno,
    what => 'begin it_defaulter_rep; end;',
    next_date => to_date(SYSDATE,'dd-mon-yy'),
    interval => to_date(sysdate + 5/1440,'dd-mon-yy'));
    COMMIT;
    END;
    create or replace procedure push_mail_queue as
    jobno number;
    BEGIN
    DBMS_JOB.SUBMIT(
    job => jobno,
    what => 'begin apex_mail.push_queue; end;',
    next_date => to_date(SYSDATE,'dd-mon-yy'),
    interval => to_date(sysdate + 10/1440,'dd-mon-yy'));
    COMMIT;
    END;
    OMY

    omy_oracle wrote:
    Hi All,
    I have created three procedures.
    1. IT_DEFAULTER_REP - counts number of entries in a table and if it is 0 then send mail.
    2. PUSH_IT_DEFAULTER_REP - it execute IT_DEFAULTER_REP every 1 min which generates mail
    3. PUSH_MAIL_QUEUE - it executes apex_mail.push_queue to push all mails in queue
    If I directly run IT_DEFAULTER_REP like
    BEGIN
    IT_DEFAULTER_REP;
    END;
    It generates mail and PUSH_MAIL_QUEUE pushes the mail.
    but what I want is: PUSH_IT_DEFAULTER_REP runs automatically besides me executing it.Hi Omy,
    I am not too sure of your actual question. Is the job you set up not periodically running that procedure - IT_DEFAULTER_REP?
    By the way, I recommend using dbms_scheduler over dbms_job - http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/jobtosched.htm
    Also, you should try and wrap your code in tags where possible.
    Ta,<br />Trent                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Error in Executing Procedure through DBLink

    Hi,
    I am facing some problems in executing a procedure through DBLink.
    I have two schema A and B in two different database.
    In schema A I am having one procedure X in package Y and my requirement is that I want to execute this procedure in schema B. So in schema B i have created one DBLink ABC and trying to execute procedure X using this DB link.
    begin
    A.Y.X@ABC;
    end;
    But I am getting below error:
    ORA-06550: line 2, column 1:
    PLS-00201: identifier 'A.Y.X@ABC' must be declared
    ORA-06550: line 2, column 1:
    PL/SQL: Statement ignored
    Any help would be greatly appreciated!
    Thanks In Advance..
    Regards,
    Sachin Bansal

    Hi,
    Yes, I am connecting to user A of DB1 and in this user I am having procedure X in Package Y. My DBLink in Schema B of DB2 is pointing to user A of DB1.
    I have created DBLINK using below script:
    create public database link abc
    connect to A
    identified by A
    using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX)(PORT=1521)))(CONNECT_DATA=(service_name=XXX)))';
    Above DBLInk is working fine..I am able to access all the table of schema A in schema B using this DBLink. But when I trying to execute any procedre of schema A in schema B then i am getting error.
    Regards,
    Sachin

  • While executing procedure it is giving Error in the TT IMD

    Hi Chris,
    Main User Cacheuser (Cache Admin User)
    Other User Interchange (TimesTen User - Same name as Oracle 11g Database User)
    Normally we are connecting through cacheuser to create any objects in the Interchange user.
    I have created procedure in the Interchange user from cacheuser cache admin user.
    Procedure is created in the Interchange user. but when i am executing that same procedure in the cacheuser user
    -- Pl/Sql block executing from cacheuser
    declare
    sOutPut varchar2(4000);
    begin
    interchange.#procedurename# ('123456', sOutPut);
    end;
    After executing we are getting error:
    failed,[TimesTen][TimesTen 11.2.1.3.0 ODBC Driver][TimesTen]TT5227: Insufficient privileges error occurred while performing an Oracle operation in OCIStmtExecute(): ORA-01031: insufficient privileges rc = -1. -- file "bdbStmt.c", lineno 3868, procedure "ttBDbStmtExecute()"
    then we have issued following command for privilege, but still it is coming same error.
    grant execute on interchange."procedurename" to cacheuser;

    Hi Chris,
    Previously PassThrough=1 (we have kept this parameter to access oracle objects from TT IMD) it was there in our sys_odbc.ini file, but after that we have created procedure in the TimesTen and also created all objects related to that procedure in the TimesTen database. and due to that we have removed passthrough entry from sys_odbc.ini file because all object we created in the TimesTen database.
    Purpose of creating all objects related to that procedure in the TimesTen database was we tried to compiled procedure in the TimesTen IMD and the some obejcts inside procedure refered from Oracle 11G database that time it was shown error "table does not exist".
    Note : That time PassThrough parameter set was "1".+
    Currently we are executing procedure through TimesTen Database only. we have not yet checked through application.
    Can i have list of passthrough and the purpose of the same.

  • Dbma_scheduler job executing procedure that loops through all client schemas in the database rolls back transaction incase of exception

    Hi,
    Needed your inputs on approach to implement a job using dbms_scheduler.
    We have around 2000 schemas. Each schema has a package with 2 procedures.
    The requirement is to create a single job in SYS that would loop through each schema and run the procedures at a specific time ( once a day) and send email notification on success or failure.
    Job script:
    BEGIN
        dbms_scheduler.create_job( job_name=> 'LOAD_EACH_SCHEMA_AUDIT_DATA',
                                   job_type=>'PLSQL_BLOCK',
                                   job_action=>'BEGIN  sys.p_loadaudit;     
                                    END;',
                                   start_date=>systimestamp,
                                   repeat_interval=>'FREQ=MINUTELY;INTERVAL=1',
                                   number_of_arguments=>0,
                                   enabled=> true,
                                   comments=>'Job repeat interval is every 5 mins' );
                                   END;
    Note: for testing purpose i have set repeat interval to minutely.
    Procedure job will be executing:
    Procedure sys.p_loadaudit:
    CREATE OR REPLACE
    PROCEDURE p_loadaudit
    AS
        v_count          NUMBER:= 0;
        lv_error_message VARCHAR2(4000);
        vstmt            VARCHAR2(4000);
    BEGIN
        FOR i IN
        ( SELECT username FROM dba_users WHERE username LIKE 'ABCFIRM%'
        LOOP
            vstmt:= 'begin ' || i.username || '.pkg_audit_info.p_load_coa; end;';
            EXECUTE immediate vstmt;
            vstmt:= 'begin ' || i.username || '.pkg_audit_info.p_load_am; end;';
            EXECUTE immediate vstmt;
        END LOOP;
    EXCEPTION
    WHEN OTHERS THEN
        lv_error_message := 'Error in procedure p_loadaudit: ' || SQLCODE || ' -ERROR- ' || SUBSTR(
        sqlerrm,1,300) || '*' || dbms_utility.format_error_backtrace;
        raise_application_error(-20002,lv_error_message);
    END p_loadaudit;
    Example of one schema: SCHEMA_01
    create or replace
    PACKAGE pkg_audit_info
    AS
    type cursortype
    IS
        ref
        CURSOR;
            PROCEDURE p_load_COA;
            PROCEDURE p_load_AM;
       END pkg_audit_info;
    create or replace
    PACKAGE body pkg_audit_info
    AS
    PROCEDURE p_load_COA
    AS
    BEGIN
    INSERT INTO TABLE1();
    EXCEPTION
    WHEN OTHERS THEN
        lv_error_message := 'Error in procedure pkg_audit_info.p_load_COA: ' || SQLCODE
        || ' -ERROR- ' || SUBSTR(SQLERRM,1,300) || '*' || dbms_utility.format_error_backtrace;
        RAISE_application_error(-20002,lv_error_message);
    END p_load_COA;
    PROCEDURE p_load_AM
    AS
    BEGIN
    INSERT INTO TABLE2();
    EXCEPTION
    WHEN OTHERS THEN
        lv_error_message := 'Error in procedure pkg_audit_info.p_load_AM: ' || SQLCODE ||
        ' -ERROR- ' || SUBSTR(SQLERRM,1,300) || '*' || dbms_utility.format_error_backtrace;
        RAISE_application_error(-20002,lv_error_message);
    END p_load_AM;
    END pkg_audit_info;
    Table1 and table1 exist in schema_01.
    All 2000 schemas have same package.procedures.
    Due to security reasons i have removed the actual code.
    I was able to execute the job successfully. However, when a schema procedure (SCHEMA_01.pkg_audit_info.p_load_COA) throws an exception, the job fails and all transaction is rolled back.
    Is there a way to loop through each schema and execute the related procedures. Even if exception happens, it should rollback only for that schema and continue the other schemas in the loop?
    Please let me know if there is a better way to achieve this. Is the way i am handling exceptions in the job/procedure correct?
    Thanks

    Hi,
    RAISE_APPLICATION_ERROR will cause the program to exit back to the caller, even if you place it in a block within the loop, so the RAISE or RAISE_APPLICATION_ERROR instruction should be placed in your "pkg_audit_info.p_load_AM" and "pkg_audit_info.p_load_coa" procedures. This way, you can use a block inside the loop and log the error.
    FOR i IN
        ( SELECT username FROM dba_users WHERE username LIKE 'ABCFIRM%'
        LOOP
           BEGIN
            vstmt:= 'begin ' || i.username || '.pkg_audit_info.p_load_coa; end;';
            EXECUTE immediate vstmt;
            vstmt:= 'begin ' || i.username || '.pkg_audit_info.p_load_am; end;';
            EXECUTE immediate vstmt;
    EXCEPTION
    WHEN OTHERS THEN  
        --> Log the error in a custom log table otherwise you will not know what happened for that schema: don't forget the username
    END;
    END LOOP;

  • Error while executing the stored procedure through sender JDBC adapter

    Hi All,
    I am getting below error while executing the stored procedure through sender JDBC adapter.
    Database-level error reported by JDBC driver while executing statement 'exec SapgetNextEntity 'SalesOrder''. The JDBC driver returned the following error message: 'com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.'. For details, contact your database server vendor.
    what is the problem? any idea to anyone...
    regards
    Ramesh

    hi Dharamveer,
    I am not getting below statement for your reply
    Try to use Refrence Cursor it will return u reference of resultset.
    I mention SP like this
    exec SapgetNextEntity 'SalesOrder'
    SapgetNextEntity -
    > SP Name
    SalesOrder----
    > Parameter I am passing...
    regards
    Ramesh

  • Error while executing Multiple Stored Procedure through .sql file

    Hi Guru's.
    I am new to ORACLE. I am facing problem while creating Stored Procedure through .sql file.
    I have one test.sql file with Stored Procedure is like,
    CREATE OR REPLACE PROCEDURE skeleton1
    AS
    BEGIN
         DBMS_Output.Put_Line('skeleton1');
    END skeleton1;
    CREATE OR REPLACE PROCEDURE skeleton2
    AS
    BEGIN
         DBMS_Output.Put_Line('skeleton2');
    END skeleton2;
    Now when i try to execute this test.sql file through SQL PLUS it gives me Error like this
    I am opening test.sql file from SQL PLUS,
    SQL>
    1 CREATE OR REPLACE PROCEDURE skeleton1
    2 AS
    3 BEGIN
    4 DBMS_Output.Put_Line('skeleton1');
    5 END skeleton1;
    6 /
    7 CREATE OR REPLACE PROCEDURE skeleton2
    8 AS
    9 BEGIN
    10 DBMS_Output.Put_Line('skeleton2');
    11* END skeleton2;
    SQL> /
    Warning: Procedure created with compilation errors.
    SQL> show errors;
    Errors for PROCEDURE SKELETON1:
    LINE/COL ERROR
    6/1 PLS-00103: Encountered the symbol "/"
    SQL>
    Please suggest how to create multiple CREATE PROCEDURE using single .sql script file....
    Regards,
    Shatrughan

    Hi,
    Try this
    CREATE OR REPLACE PROCEDURE skeleton1
    AS
    BEGIN
    DBMS_Output.Put_Line('skeleton1');
    END ;
    CREATE OR REPLACE PROCEDURE skeleton2
    AS
    BEGIN
    DBMS_Output.Put_Line('skeleton2');
    END;
    /Save the file and call it.
    Regards,
    Bhushan

  • Error when executing DBMS_ERRLOG through Stored Procedures...

    Hi,
    We have TWO schemas like IDWH_ODS and IDWH_ERR running on Oracle 10g Rel.2.
    The schema IDWH_ERR has direct SELECT privilege on all the base tables in IDWH_ODS schema. (As Pl/sql doesn't support ROLE, we have granted direct SELECT on each of the tables)
    IDWH_ODS schema has tables like ACCOUNT & CUSTOMER, for which I need to create DML Error logging tables in IDWH_ERR schema.
    I have one procedure 'Cr_Errlog_Tabs' in IDWH_ERR schema which gets all tables in IDWH_ODS and creates Error logging table in IDWH_ERR schema using DBMS_ERRLOG package. My problem starts here,
    When I execute the DBMS_ERRLOG package in IDWH_ERR through SQL*Plus LIKE,
    > exec DBMS_ERRLOG.CREATE_ERROR_LOG('idwh_ods.ACCOUNT','ERR$_ACCOUNT','idwh_err');
    it's creating the error log table 'ERR$_ACCOUNT' in IDWH_ERR schema.
    (...the same will be working when execute through Anonymous plsql block)
    BUT, when i execute the DBMS_ERRLOG package with same parameters through the stored Procedure 'Cr_Errlog_Tabs', it throws the following error...
    ORA-01031: insufficient privileges
    Please let me know how the solution at the earliest.

    WHY DO YOU FEEL YOU HAVE TO START A NEW THREAD FOR YOUR PROBLEM!?
    Insufficient priv error when executing DBMS_ERRLOG through PLSQL

  • How to execute oracle stored procedure through php as externally?

    hi...
    i am searching for the way that how to execute oracle stored procedure through web service, i am using php and mysql, i have some stored procedures in oracale database, i want to execute them, from php, means the database will be remain mysql, and the stored procedures of oracle will be executed externally...
    Kind regards,
    Wilayat.

    Ok, so first of all this is a kind of strange question. Since Oracle and MYSQL can happily live side by side.
    Make sure you have the oracle client (instant or regular ) installed and OCI_8 is set up and working correctly in PHP. If it is, when you run the phpinfo() routine you will see oci_8 on there. IF PHP connects just fine from the command line yet apache wont connect check permissions and things like the LD_Library Path.
    Then in php, right along with your MySQL statements run Oracle Statements eg:
    <?php
    $OraDB = oci_connect(name,pass,tnsname);
    $MySQLdb = mysql_connect([parms]);
    $oraQueryText = "begin sp_some_proc([some parms]); end;" ;
    $mysqlQuery = " Some mysql Query";
    $oraQuery = oci_parse($OraDB,$oraQueryText );
    oci_execute($oraQuery);
    mysql_execute([parms]);
    ?>
    Use the standard fetch code to get data from either of them.
    If you cannot and I mean absolutely cannot get an admin to link in OCI_8 then you still have recourse although it will be tedious as hell. PHP allows you to exec calls to the OS. You still MUST make sure the Oracle Client is installed and that sqlplus runs from the command line. You will more then likely have to have a shell script written to do this as well, but maybe not as I have never tried it with the exception of capturing the return value of sqlplus and you will have to dig into sqlplus to get it to send its results to a file you can then parse with php.
    Good Luck!

  • Execute the show_employees procedure through a URL

    Hey! All
    I have created simple.psp file:=>
    <%@ page language="PL/SQL" %>
    <%@ page contentType="text/html" %>
    <%@ plsql procedure="show_employees" %>
    <%-- This example displays the last name and first name of every
    employee in the hr.employees table. --%>
    <%!
    CURSOR emp_cursor IS
    SELECT last_name, first_name
    FROM hr.employees
    ORDER BY last_name;
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html">
    <title>List of Employees</title>
    </head>
    <body TEXT="#000000" BGCOLOR="#FFFFFF">
    <h1>List of Employees</h1>
    <table width="40%" border="1">
    <tr>
    <th align="left">Last Name</th>
    <th align="left">First Name</th>
    </tr>
    <% FOR emp_record IN emp_cursor LOOP %>
    <tr>
    <td> <%= emp_record.last_name %> </td>
    <td> <%= emp_record.first_name %> </td>
    </tr>
    <% END LOOP; %>
    </table>
    </body>
    </html>
    2. D:\>loadpsp -replace -user hr/hr E:\OracleBestPractices\OraclePLSQL\simple.psp
    "E:\OracleBestPractices\OraclePLSQL\simple.psp": procedure "show_employees" crea
    ted.
    3.Browser users can execute the show_employees procedure through a URL.But how? Please guide me .
    Thanks in Advance
    Prashansh

    This is the forum for Oracle's SQL Developer tool, not for general SQL and PL/SQL questions.
    You need some kind of application server. At the simplest level this could just be oracle's HTTP server with the PL/SQL gateway.
    Is there no instruction in the book you are using for setting up the gateway?
    You could try the General Database Discussions forum, or the Oracle Application Server - General forum.

  • How to Execute SQL Server stored procedure through SQL Developer?

    Hi,
    I was successful in connecting SQL Server database using SQL Developer. I am able to see all the objects such Tables,Views & Procedure and also can query data using sql Query. But when it comes to executing procedure there's no option to achieve this. I tried "Exec |<Execute Procedure> Proc_name" but unfortunately both statement threw Errors.
    Please suggest about other alternates.
    Thanks in Advance,
    AP

    Hi,
    I was successful in connecting SQL Server database using SQL Developer. I am able to see all the objects such Tables,Views & Procedure and also can query data using sql Query. But when it comes to executing procedure there's no option to achieve this. I tried "Exec |<Execute Procedure> Proc_name" but unfortunately both statement threw Errors.
    Please suggest about other alternates.
    Thanks in Advance,
    AP

  • ORA-00900: invalid SQL statement Error while Executing Procedure

    Hi:
    I am trying to execute following procedure through java code, but i am getting ORA-00900: invalid SQL statement error.
    Procedure is :
    <code>
    (vResult out int)
    as
    vCardId varchar2(16);
    vForacid varchar2(16);
    vApp_Entry_No varchar2(10);
    vSrNo number(6);
    vCardStatus char(1);
    vCardStat char(2);
    vExpiryDate date;
    Cursor cardCur1 is
    select u.card_number,trim(u.ACCOUNT_NUMBER),u.CARD_STATUS,to_char(u.EXPIRY_DATE,'dd-MM-yyyy')
    FROM DailyCardData u
    where default_indicator='1'
    and isprocessed = 'N'
    order by expiry_date;
    begin
    vSrNo := 0;
    vResult := 0;
    open cardCur1;
    Loop
    fetch cardCur1 into vCardId,vForacid,vCardStat,vExpiryDate;
    if cardCur1%NOTFOUND then
    exit;
    end if;
    if (vCardStat != null) then
    vCardStatus := 'H';
    elsif (vExpiryDate <= sysdate) then
    vCardStatus := 'E';
    else
    vCardStatus := null;
    end if;
    select a.app_entry_no into vApp_Entry_No from Application a,ApplicationLinkedAccounts l
    where l.foracid = vForacid and l.AcSrNo = '1'
    and a.app_entry_no = l.app_entry_no
    and a.cardid is null
    and a.DOWNLOADFILECREATIONFLAG = 'Y';
    update Application set CardId = vCardId,
    Card_Status = vCardStatus,APPLICATIONPROCESSEDFLAG = 'Y',
    APPLICATIONPROCESSEDdate = DOWNLOADFILECREATIONdate
    where App_Entry_No = vApp_Entry_No;
    commit;
    update DailyCardData set isprocessed = 'Y',app_entry_no = vApp_Entry_No
    where card_number = vCardId;
    commit;
    end Loop;
    close cardCur1;
    vResult := 1;
    end;
    </code>
    Can any body help me in that?
    Thank You,
    Anup

    First of all I don't see a procedure header.
    Secondly I see you commit inside your procedure. This is a bug.
    Thirdly I see you also commit inside a loop. This is also a bug, and needs to be removed asap.
    The error indicates a statement doesn't parse. As you don't post the error stack, nor a table definition no one can reproduce the problem.
    You need to isolate the statements, one by one, and run them through sql*plus to see what happens.
    Sybrand Bakker
    Senior Oracle DBA

  • Error  while executing query through rsrt

    hello experts,
    I am facing following error while executing one HR query through rsrt.
    "System error in program SAPLRRI2 and form REP_ASSIGN_INITIAL_OPT-01- (see long text) "
    while executing query through rsrt it automatically goes to debug mode, coming out of debug mode i get the screan showing above error message.
    What would be an issue?
    Regards,
    Nirav
    Edited by: Nirav Shah on Apr 21, 2008 8:19 AM

    Hi ramesh,
    I havent kept any execlusion selection. Though i saw long text, it is like this:
    "Diagnosis
    This internal error is an intended termination resulting from a program state that is not permitted.
    Procedure
    Analyze the situation and inform SAP.
    If the termination occurred when you executed a query or Web template, or during interaction in the planning modeler, and if you can reproduce this termination, record a trace (transaction RSTT).
    For more information about recording a trace, see the documentation for the trace tool environment as well as SAP Note 899572.
      Notification Number BRAIN 299 "
    Regards,
    Nirav

  • How to handle the unsuccessful execution of a procedure through exception

    I have to run a sequence of procedures through a procedure. The execution of a succeeding procedure depends on the successful execution of the preceding procedure.What i want is that a procedure is only executed when the preceding
    procedure is successful.

    I wonder which is the best practice ...
    1) to pack all exceptions - occured in the sub-procedures - in the main procedure
    or
    2) to pack all exceptions - occured in the sub-procedures - locally , in the body of these sub-procedures....???
    In other words....
    procedure main
    as
       begin
          procA;
          procB;
          exception
             when ......
             when .....
             when .....
        end;
    procedure A
    as
      begin
          return;
      end;
    procedure B
    as
      begin
          return;
      end;
    OR
    procedure main
    as
       begin
          procA;
          procB;
        end;
    procedure A
    as
      begin
          exception
            when ...........
            when ...........
          return;
      end;
    procedure B
    as
      begin
          exception
            when ...........
            when ...........
          return;
      end;Thanks...
    Sim

  • Insufficient priv error when executing DBMS_ERRLOG through PLSQL

    Hi,
    I shall be grateful if any one of you give me the solution at the earliest.
    I have 2 schemas like A & B those are running on Oracle 10g rel2.
    As per my buz req' I need to create DML Error log table for 'A.T1' table in B schema using DBMS_ERRORLOG package.
    I have granted direct SELECT on A.T1 to B (...not through ROLE as it doesn't work in plsql)
    The problem is when i'm running the procedure,
    DBMS_ERRLOG.CREATE_ERROR_LOG('A.T1', 'err_T1', 'B');
    in SQL*Plus of B schema, it's creating the error log table successfully.
    But the same will get failed when i run this error log procedure with in a procedure owned by B schema.
    It throws 'ORA-01031: insufficient privileges'...
    I hope this is related to privilege issue which is working fine in SQL*Plus but NOT in PLSQL stored procedure.
    Awaiting your earliest reply.
    Thanks.
    - Ela

    >I dont think it's an issue with direct privilege. Actually the
    package is working when i execute it with in a ananymous block,
    but the same get fails when execute it through procedures...
    Role privs work with anonymous PL/SQL blocks. Does not work with stored PL/SQL code.
    SQL> create user user1 identified by user1 default tablespace users quota 2M on users;
    User created.
    SQL> grant create session to user1;
    Grant succeeded.
    SQL> create role user1_role;
    Role created.
    SQL> grant create table, create procedure to user1_role;
    Grant succeeded.
    SQL> grant user1_role to user1;
    Grant succeeded.
    SQL> connect user1/user1
    Connected.
    PL/SQL procedure successfully completed.
    SQL> create table x( n number );
    Table created.
    SQL> begin
    2 execute immediate 'create table y( n number )';
    3* end;
    SQL> /
    PL/SQL procedure successfully completed.
    SQL> create or replace procedure CreateTable is
    2 begin
    3 execute immediate 'create table z( n number )';
    4* end;
    SQL> /
    Procedure created.
    SQL> exec CreateTable
    BEGIN CreateTable; END;
    ERROR at line 1:
    ORA-01031: insufficient privileges
    ORA-06512: at "USER1.CREATETABLE", line 3
    ORA-06512: at line 1
    SQL>

Maybe you are looking for

  • How can I use Find my iPhone on supervised devices?

    I manage a fleet of iPad 2 carts for my school all using the same Apple ID, but I have run into a wall with this problem. In the past Find my iPhone has not be able to for me on supervised devices. I have thought about using Meraki, but I have read t

  • Failed to upgrade more than one table at same time

    Hi In Deployment Manager, I failed to upgrade more than one table at same time. I tried to hightlight 4 tables and set the default action as Upgrade, and click File/Generate Deploy. It passed the code generation step then I click Deploy, they are all

  • Invalid characters when consuming web service

    Morning all, I am using Apache Axis 1.3 (yes, slightly old version) to consume a Microsoft SharePoint web service. The problem I am finding is that the returned XML contains an invalid XML character which is causing Axis to throw an exception. I have

  • Satviewe help PKGBUILD

    Here is my PKGBUILD http://pastebin.com/Cx2iugy7 17 line is empty i dont know what to put here is install.sh http://pastebin.com/b6nSrjH7 and what i need to put to file was in /usr/bin ?

  • My iphone 4 screen has been frozen (on that rotating circle thing it does right before it turns off) for about 6 hours now!

    This morning it was working fine and then it went to the lock screen and I tried to "slide to unlock" and it wouldn't go. Then it became frozen on the lock screen and I tried everything from holding the lock button to try to shut it down, plugging it