Security problem? (ORA-00942 error when creating procedure)

First, in SQL*Plus connect as system user:
SQL>connect system/oracle
Then, create table proctest for user scott and insert records:
SQL>create table scott.proctest ( name varchar2(10)) ;
SQL>insert into scott.proctest values ( 'bigboy' ) ;
SQL>select * from scott.proctest ;
NAME
bigboy
Then, create procedure testproc for user system using table scott.proctest:
SQL>CREATE OR REPLACE PROCEDURE testproc AS
2 v_name VARCHAR2(10) ;
3 BEGIN
4 SELECT Name INTO v_name FROM scott.proctest WHERE rownum < 2 ;
5 DBMS_OUTPUT.PUT_LINE( 'Name: ' || v_name ) ;
6 END ;
7 /
Then, errs report:
SQL>show err;
LINE/COL ERROR
4/2 PL/SQL: SQL
4/2 PL/SQL: SQL Statement ignored
4/37 PL/SQL: ORA-00942: Table or view does not exist
Then, explicitly grant select privilege on proctest to system:
SQL>grant select on scott.proctest to system ;
And at this time compile the above precedure again, there's no errors.
I have got some instruction that if a procedure wants to use some table,
the owner of this procedure has to have corresponding privileges to use this table and
these privileges have to be granted directly to the user. It doesn't work if
the privileges are granted i.e. through roles.
And in the example above the user has select on scott.proctest privilege but
this privilege is granted through DBA role. So it doesn't work if
I do not explicitly grant select privilege to system.
My question is:
Why does Oracle define this rule? Is it a kind of security consideration?

Since stored procedures rely on privileges that are granted directly to the user, Oracle only needs to re-validate stored procedures when direct grants to the schema owner change. In general, the rate at which the privileges assigned to roles are changed is much higher than the rate at which privileges assigned to a particular user are changed, so this cuts down on on the cost of revalidating procedures.
More importantly, Oracle roles can be assigned to users, but a user can also have non-default roles and password-protected roles. If Oracle allowed privileges through roles to affect the privileges of a stored procedure, handling these sorts of cases would be quite difficult and would result in far more confusion than in today's implementation.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC

Similar Messages

  • Security Network Layer (SNC) error when creating new session

    in SAPGUI 710, suddenly some users are getting a popup message ("Security Network Layer SNC error") when they use the Create New Session toolbar button.
    SSO works fine when they connect from SAP Logon, its only when attempting to open secondary sessions.  Also, its only some users.
    Where would I find log information resulting from the error?  Or any suggestions on steps to troubleshoot?
    Thanks!

    Hello Erik,
    Issue actually belongs to BC-SEC-SNC, not SAPGUI.
    The attached note advises how to run a trace to get more information about the issue
    150104 collecting dev_trace of user session via SM04
    If you recreate the issue again with the active trace, you might have more sucess with a reply.
    Just to advise that 7.10 is out of support and 7.20 should be used as soon as possible.
    Kind Regards,
    Jude

  • ORA-00942 error when exporting db

    Hi,
    Has anyone encountered the following error before? Kindly help.
    Connected to: Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.7.0 - Production
    Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
    About to export the entire database ...
    . exporting tablespace definitions
    . exporting profiles
    . exporting user definitions
    . exporting roles
    . exporting resource costs
    . exporting rollback segment definitions
    . exporting database links
    . exporting sequence numbers
    . exporting directory aliases
    . exporting context namespaces
    . exporting foreign function library names
    . exporting PUBLIC type synonyms
    . exporting private type synonyms
    . exporting object type definitions
    EXP-00008: ORACLE error 942 encountered
    ORA-00942: table or view does not exist
    EXP-00024: Export views not installed, please notify your DBA
    EXP-00000: Export terminated unsuccessfully
    My exp parameters are full=y grants=y indexes=y rows=y

    Hi,
    I have executed catexp.sql but when I run the exp it produced the ff error:
    Connected to: Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.7.0 - Production
    Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
    About to export the entire database ...
    . exporting tablespace definitions
    . exporting profiles
    . exporting user definitions
    . exporting roles
    . exporting resource costs
    . exporting rollback segment definitions
    . exporting database links
    . exporting sequence numbers
    . exporting directory aliases
    . exporting context namespaces
    . exporting foreign function library names
    . exporting PUBLIC type synonyms
    . exporting private type synonyms
    . exporting object type definitions
    . exporting system procedural objects and actions
    . exporting pre-schema procedural objects and actions
    EXP-00008: ORACLE error 21779 encountered
    ORA-21779: duration not active
    ORA-06512: at "SYS.DBMS_AW", line 106
    ORA-06512: at "SYS.DBMS_AW", line 222
    ORA-06512: at "SYS.DBMS_AW_EXP", line 264
    ORA-06512: at line 1
    EXP-00083: The previous problem occurred when calling SYS.DBMS_AW_EXP.schema_info_exp
    . exporting cluster definitions
    EXP-00056: ORACLE error 31600 encountered
    ORA-31600: invalid input value EMIT_SCHEMA for parameter NAME in function SET_TRANSFORM_PARAM
    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
    ORA-06512: at "SYS.DBMS_METADATA_INT", line 3926
    ORA-06512: at "SYS.DBMS_METADATA_INT", line 4050
    ORA-06512: at "SYS.DBMS_METADATA", line 836
    ORA-06512: at line 1
    EXP-00056: ORACLE error 31600 encountered
    ORA-31600: invalid input value EMIT_SCHEMA for parameter NAME in function SET_TRANSFORM_PARAM
    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
    ORA-06512: at "SYS.DBMS_METADATA_INT", line 3926
    ORA-06512: at "SYS.DBMS_METADATA_INT", line 4050
    ORA-06512: at "SYS.DBMS_METADATA", line 836
    ORA-06512: at line 1
    EXP-00000: Export terminated unsuccessfully

  • ORA-20001 error when creating Tabular Form or Form and Report

    Whenever I try and add a Tabular Form or Form and Report to my application i am getting the following error at the end of the Wizard.
    ORA-20001: Unable to create updateable report. ORA-20001: Error creating shortcut id="" ORA-00001: unique constraint (APEX_030200.WWV_FLOW_SHORTCUT_IDX1) violatedIt's not a problem I have seen when building other apps and clearly I have managed to corrupt this application somehow.
    I have loaded the problem onto apex.oracle.com for those that have access. The application number is 20325.
    Any help would be very much appreciated.
    Cheers Shunt

    Thanks! Never thought of that.
    --Andy                                                                                                                                                                                                                       

  • Very weird ORA-06502 error while creating procedure

    Hi All,
    i try to create the following procedure (on a 10.2 database):
    create or replace procedure audit_report
    as
    cursor c_audit_user (b_start_date date, b_end_date date)
    is
    select user_id
    , os_user
    , session_id
    , host
    , last_program
    , last_action
    , last_module
    , to_char(logon_day,'dd-mm-yyyy') logon_day
    , logon_time
    , to_char(logoff_day,'dd-mm-yyyy') logoff_day
    , logoff_time
    , elapsed_minutes
    from audit_user
    where logon_day >= b_start_date
    and logon_day < b_end_date
    order by logon_day desc
    cursor c_audit_ddl (b_start_date in date, b_end_date in date)
    is
    select user_name
    , to_char(ddl_date,'dd-mm-yyyy hh24:mi:ss') ddl_date
    , ddl_type
    , object_type
    , owner
    , object_name
    , sql_text
    from audit_ddl
    where ddl_date >= b_start_date
    and ddl_date < b_end_date
    order by ddl_date desc
    cursor c_audit_trail (b_start_date in date, b_end_date in date)
    is
    select os_username
    , username
    , to_char(timestamp,'dd-mm-yyyy hh24:mi:ss') timestamp
    , owner
    , obj_name
    , to_char(action) action
    , action_name
    , decode(ses_actions,'---S------------','DELETE',
    '------S---------','INSERT',
    '---------S------','SELECT',
    '----------S-----','UPDATE',
    '---S--S--S------','DELETE/INSERT/SELECT',
    '---S--S--SS-----','DELETE/INSERT/SELECT/UPDATE',
    '------S--S------','INSERT/SELECT',
    '------S--SS-----','INSERT/SELECT/UPDATE',
    '---------SS-----','SELECT/UPDATE',
    'DDL ACTION') ses_actions
    , priv_used
    from dba_audit_Trail
    where username <> 'DBSNMP'
    and timestamp >= b_start_date
    and timestamp < b_end_date
    order by timestamp desc
    v_header_user varchar2(255);
    v_sep_user varchar2(255);
    v_header_ddl varchar2(255);
    v_sep_ddl varchar2(255);
    v_header_dml varchar2(255);
    v_sep_dml varchar2(255);
    v_record_user varchar2(255);
    v_record_ddl varchar2(255);
    v_record_dml varchar2(255);
    v_report utl_file.file_type;
    v_file_dir varchar2(255);
    v_file_name varchar2(255);
    v_start_date date;
    v_end_date date;
    v_db_name varchar2(255);
    begin
    -- Find start and end date of previous week (Sunday to Monday)
    if to_char(sysdate,'DAY') = 'MONDAY' then
    v_start_date := trunc(sysdate-8);
    v_end_date := trunc(sysdate-1);
    elsif
    to_char(sysdate,'DAY') = 'TUESDAY' then
    v_start_date := trunc(sysdate-9);
    v_end_date := trunc(sysdate-2);
    elsif
    to_char(sysdate,'DAY') = 'WEDNESDAY' then
    v_start_date := trunc(sysdate-10);
    v_end_date := trunc(sysdate-3);
    elsif
    to_char(sysdate,'DAY') = 'THURSDAY' then
    v_start_date := trunc(sysdate-11);
    v_end_date := trunc(sysdate-4);
    elsif
    to_char(sysdate,'DAY') = 'FRIDAY' then
    v_start_date := trunc(sysdate-12);
    v_end_date := trunc(sysdate-5);
    elsif
    to_char(sysdate,'DAY') = 'SATURDAY' then
    v_start_date := trunc(sysdate-13);
    v_end_date := trunc(sysdate-6);
    elsif
    to_char(sysdate,'DAY') = 'SUNDAY' then
    v_start_date := trunc(sysdate-14);
    v_end_date := trunc(sysdate-7);
    end if;
    --Fill headers
    v_header_user := 'USER_ID OS_USER SESSION_ID HOST LAST_PROGR'||
    ' LAST_ACTION LAST_MODULE LOGON_DAY'||
    ' LOGON_TI LOGOFF_DAY LOGOFF_T ELAPSED_MINUTES';
    v_sep_user := '---------- --------- ---------- -------- ----------'||
    '-------------------- ----------- ----------- ---------'||
    v_header_ddl := 'USER_NAME DDL_DATE DDL_TYPE OBJECT_TYPE'||
    ' OWNER OBJECT_NAME SQL_TEXT';
    v_sep_ddl := '---------- --------------------- ---------- -----------'||
    '--------- ---------- -------------------- -------------'||
    v_header_dml := 'OS_USERNAME USERNAME TIMESTAMP OWNER'||
    ' OBJ_NAME ACTION ACTION_NAME SES_ACTIONS'||
    ' PRIV_USED';
    v_sep_dml := '----------- ---------- --------------------- ---------- '||
    '--------------- ------ --------------- ------------------'||
    --Create audit report file
    v_file_dir := 'AUDIT_REPORT_DIR';
    select name
    into v_db_name
    from v$database;
    v_file_name := 'audit_report_'||v_db_name||'_'||to_char(v_start_date,'yyyymmdd')||'-'||to_char(v_end_date-1,'yyyymmdd')||'.log';
    v_report := utl_file.fopen(v_file_dir, v_file_name, 'w');
    --Report Header
    utl_file.put_line(v_report,'AUDIT REPORT');
    utl_file.put_line(v_report,'------------');
    utl_file.put_line(v_report,'Database: '||v_db_name);
    utl_file.put_line(v_report,'From : '||to_char(trunc(v_start_date),'dd-mm-yyyy'));
    utl_file.put_line(v_report,'To : '||to_char(trunc(v_end_date),'dd-mm-yyyy'));
    utl_file.put_line(v_report,'Created : '||to_char(sysdate,'dd-mm-yyyy hh24:mi:ss'));
    utl_file.new_line(v_report);
    --Report Detail records
    utl_file.put_line(v_report,v_header_user);
    utl_file.put_line(v_report,v_sep_user);
    for r_audit_user in c_audit_user(v_start_date,v_end_date) loop
    v_record_user := rpad(r_audit_user.user_id,11,' ')||
    rpad(r_audit_user.os_user,11,' ')||
    rpad(r_audit_user.session_id,11,' ')||
    rpad(r_audit_user.host,9,' ')||
    rpad(r_audit_user.last_program,31,' ')||
    rpad(r_audit_user.last_action,12,' ')||
    rpad(r_audit_user.last_module,12,' ')||
    rpad(r_audit_user.logon_day,11,' ')||
    rpad(r_audit_user.logon_time,9,' ')||
    rpad(r_audit_user.logoff_day,11,' ')||
    rpad(r_audit_user.logoff_time,9,' ')||
    lpad(r_audit_user.elapsed_minutes,15,' ');
    utl_file.put_line(v_report,v_record_user);
    end loop;
    utl_file.new_line(v_report);
    utl_file.put_line(v_report,v_header_ddl);
    utl_file.put_line(v_report,v_sep_ddl);
    for r_audit_ddl in c_audit_ddl(v_start_date,v_end_date) loop
    v_record_ddl := rpad(r_audit_ddl.user_name,11,' ')||
    rpad(r_audit_ddl.ddl_date,22,' ')||
    rpad(r_audit_ddl.ddl_type,11,' ')||
    rpad(r_audit_ddl.object_type,21,' ')||
    rpad(r_audit_ddl.owner,11,' ')||
    rpad(r_audit_ddl.object_name,21,' ')||
    rpad(r_audit_ddl.sql_text,100,' ');
    utl_file.put_line(v_report,v_record_ddl);
    end loop;
    utl_file.new_line(v_report);
    utl_file.put_line(v_report,v_header_dml);
    utl_file.put_line(v_report,v_sep_dml);
    for r_audit_trail in c_audit_trail(v_start_date,v_end_date) loop
    v_record_dml := rpad(r_audit_trail.os_username,12,' ')||
    rpad(r_audit_trail.username,11,' ')||
    rpad(r_audit_trail.timestamp,22,' ')||
    rpad(r_audit_trail.owner,11,' ')||
    rpad(r_audit_trail.obj_name,16,' ')||
    rpad(r_audit_trail.action,7,' ')||
    rpad(r_audit_trail.action_name,16,' ')||
    rpad(r_audit_trail.ses_actions,19,' ')||
    rpad(r_audit_trail.priv_used,20,' ');
    utl_file.put_line(v_report,v_record_dml);
    end loop;
    utl_file.new_line(v_report);
    utl_file.put_line(v_report, '*** End of report ***');
    utl_file.fclose(v_report);
    end;
    This gives me the following error:
    ERROR at line 1:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    ORA-06512: at line 8
    When i try to create the procedure as this, i get the same error:
    create or replace procedure audit_report
    as
    /*cursor c_audit_user (b_start_date date, b_end_date date)
    is
    select user_id
    , os_user
    , session_id
    , host
    , last_program
    , last_action
    , last_module
    , to_char(logon_day,'dd-mm-yyyy') logon_day
    , logon_time
    , to_char(logoff_day,'dd-mm-yyyy') logoff_day
    , logoff_time
    , elapsed_minutes
    from audit_user
    where logon_day >= b_start_date
    and logon_day < b_end_date
    order by logon_day desc
    cursor c_audit_ddl (b_start_date in date, b_end_date in date)
    is
    select user_name
    , to_char(ddl_date,'dd-mm-yyyy hh24:mi:ss') ddl_date
    , ddl_type
    , object_type
    , owner
    , object_name
    , sql_text
    from audit_ddl
    where ddl_date >= b_start_date
    and ddl_date < b_end_date
    order by ddl_date desc
    cursor c_audit_trail (b_start_date in date, b_end_date in date)
    is
    select os_username
    , username
    , to_char(timestamp,'dd-mm-yyyy hh24:mi:ss') timestamp
    , owner
    , obj_name
    , to_char(action) action
    , action_name
    , decode(ses_actions,'---S------------','DELETE',
    '------S---------','INSERT',
    '---------S------','SELECT',
    '----------S-----','UPDATE',
    '---S--S--S------','DELETE/INSERT/SELECT',
    '---S--S--SS-----','DELETE/INSERT/SELECT/UPDATE',
    '------S--S------','INSERT/SELECT',
    '------S--SS-----','INSERT/SELECT/UPDATE',
    '---------SS-----','SELECT/UPDATE',
    'DDL ACTION') ses_actions
    , priv_used
    from dba_audit_Trail
    where username <> 'DBSNMP'
    and timestamp >= b_start_date
    and timestamp < b_end_date
    order by timestamp desc
    v_header_user varchar2(255);
    v_sep_user varchar2(255);
    v_header_ddl varchar2(255);
    v_sep_ddl varchar2(255);
    v_header_dml varchar2(255);
    v_sep_dml varchar2(255);
    v_record_user varchar2(255);
    v_record_ddl varchar2(255);
    v_record_dml varchar2(255);
    v_report utl_file.file_type;
    v_file_dir varchar2(255);
    v_file_name varchar2(255);
    v_start_date date;
    v_end_date date;*/
    v_db_name varchar2(255);
    begin
    /*-- Find start and end date of previous week (Sunday to Monday)
    if to_char(sysdate,'DAY') = 'MONDAY' then
    v_start_date := trunc(sysdate-8);
    v_end_date := trunc(sysdate-1);
    elsif
    to_char(sysdate,'DAY') = 'TUESDAY' then
    v_start_date := trunc(sysdate-9);
    v_end_date := trunc(sysdate-2);
    elsif
    to_char(sysdate,'DAY') = 'WEDNESDAY' then
    v_start_date := trunc(sysdate-10);
    v_end_date := trunc(sysdate-3);
    elsif
    to_char(sysdate,'DAY') = 'THURSDAY' then
    v_start_date := trunc(sysdate-11);
    v_end_date := trunc(sysdate-4);
    elsif
    to_char(sysdate,'DAY') = 'FRIDAY' then
    v_start_date := trunc(sysdate-12);
    v_end_date := trunc(sysdate-5);
    elsif
    to_char(sysdate,'DAY') = 'SATURDAY' then
    v_start_date := trunc(sysdate-13);
    v_end_date := trunc(sysdate-6);
    elsif
    to_char(sysdate,'DAY') = 'SUNDAY' then
    v_start_date := trunc(sysdate-14);
    v_end_date := trunc(sysdate-7);
    end if;
    --Fill headers
    v_header_user := 'USER_ID OS_USER SESSION_ID HOST LAST_PROGR'||
    ' LAST_ACTION LAST_MODULE LOGON_DAY'||
    ' LOGON_TI LOGOFF_DAY LOGOFF_T ELAPSED_MINUTES';
    v_sep_user := '---------- --------- ---------- -------- ----------'||
    '-------------------- ----------- ----------- ---------'||
    v_header_ddl := 'USER_NAME DDL_DATE DDL_TYPE OBJECT_TYPE'||
    ' OWNER OBJECT_NAME SQL_TEXT';
    v_sep_ddl := '---------- --------------------- ---------- -----------'||
    '--------- ---------- -------------------- -------------'||
    v_header_dml := 'OS_USERNAME USERNAME TIMESTAMP OWNER'||
    ' OBJ_NAME ACTION ACTION_NAME SES_ACTIONS'||
    ' PRIV_USED';
    v_sep_dml := '----------- ---------- --------------------- ---------- '||
    '--------------- ------ --------------- ------------------'||
    --Create audit report file
    v_file_dir := 'AUDIT_REPORT_DIR';
    select name
    into v_db_name
    from v$database;
    v_file_name := 'audit_report_'||v_db_name||'_'||to_char(v_start_date,'yyyymmdd')||'-'||to_char(v_end_date-1,'yyyymmdd')||'.log';
    v_report := utl_file.fopen(v_file_dir, v_file_name, 'w');
    --Report Header
    utl_file.put_line(v_report,'AUDIT REPORT');
    utl_file.put_line(v_report,'------------');
    utl_file.put_line(v_report,'Database: '||v_db_name);
    utl_file.put_line(v_report,'From : '||to_char(trunc(v_start_date),'dd-mm-yyyy'));
    utl_file.put_line(v_report,'To : '||to_char(trunc(v_end_date),'dd-mm-yyyy'));
    utl_file.put_line(v_report,'Created : '||to_char(sysdate,'dd-mm-yyyy hh24:mi:ss'));
    utl_file.new_line(v_report);
    --Report Detail records
    utl_file.put_line(v_report,v_header_user);
    utl_file.put_line(v_report,v_sep_user);
    for r_audit_user in c_audit_user(v_start_date,v_end_date) loop
    v_record_user := rpad(r_audit_user.user_id,11,' ')||
    rpad(r_audit_user.os_user,11,' ')||
    rpad(r_audit_user.session_id,11,' ')||
    rpad(r_audit_user.host,9,' ')||
    rpad(r_audit_user.last_program,31,' ')||
    rpad(r_audit_user.last_action,12,' ')||
    rpad(r_audit_user.last_module,12,' ')||
    rpad(r_audit_user.logon_day,11,' ')||
    rpad(r_audit_user.logon_time,9,' ')||
    rpad(r_audit_user.logoff_day,11,' ')||
    rpad(r_audit_user.logoff_time,9,' ')||
    lpad(r_audit_user.elapsed_minutes,15,' ');
    utl_file.put_line(v_report,v_record_user);
    end loop;
    utl_file.new_line(v_report);
    utl_file.put_line(v_report,v_header_ddl);
    utl_file.put_line(v_report,v_sep_ddl);
    for r_audit_ddl in c_audit_ddl(v_start_date,v_end_date) loop
    v_record_ddl := rpad(r_audit_ddl.user_name,11,' ')||
    rpad(r_audit_ddl.ddl_date,22,' ')||
    rpad(r_audit_ddl.ddl_type,11,' ')||
    rpad(r_audit_ddl.object_type,21,' ')||
    rpad(r_audit_ddl.owner,11,' ')||
    rpad(r_audit_ddl.object_name,21,' ')||
    rpad(r_audit_ddl.sql_text,100,' ');
    utl_file.put_line(v_report,v_record_ddl);
    end loop;
    utl_file.new_line(v_report);
    utl_file.put_line(v_report,v_header_dml);
    utl_file.put_line(v_report,v_sep_dml);
    for r_audit_trail in c_audit_trail(v_start_date,v_end_date) loop
    v_record_dml := rpad(r_audit_trail.os_username,12,' ')||
    rpad(r_audit_trail.username,11,' ')||
    rpad(r_audit_trail.timestamp,22,' ')||
    rpad(r_audit_trail.owner,11,' ')||
    rpad(r_audit_trail.obj_name,16,' ')||
    rpad(r_audit_trail.action,7,' ')||
    rpad(r_audit_trail.action_name,16,' ')||
    rpad(r_audit_trail.ses_actions,19,' ')||
    rpad(r_audit_trail.priv_used,20,' ');
    utl_file.put_line(v_report,v_record_dml);
    end loop;
    utl_file.new_line(v_report);
    utl_file.put_line(v_report, '*** End of report ***');
    utl_file.fclose(v_report);*/
    null;
    end;
    So all code is commented out, but still the error.
    Any ideas?
    Kind regards,
    Dave

    just out of interest, what output do you get if you desc user_source?
    I get:
    NAME                                               VARCHAR2(30)               
    TYPE                                               VARCHAR2(12)               
    LINE                                               NUMBER                     
    TEXT                                               VARCHAR2(4000)        

  • ORA-20001 Error when creating a new application

    Hi,
    I am trying to create a new application of an existing table in the database and I get the following error. The application is created using the wizard (app type Database, from scratch, Report and Form page)
    ORA-20001: Unable to create modules. ORA-20001: Create pages error. ORA-20001: Unable to create form page. ORA-20001: Error page=2 item="P2_NON_ORACLE_EMPLOYEE_SPEAKER" id="1975288532127294112" ORA-20001: Error page=2 item="P2_NON_ORACLE_EMPLOYEE_SPEAKER" id="1975288532127294112" has same name as existing application-level item. ORA-0000: normal, successful completion
    The table I am creating the app on is defined like this:
    CREATE TABLE  "TABLE_1"
       (    "ID" NUMBER,
            "SESSION_EXTERNAL_PAPER" VARCHAR2(30),
            "OWNER_CFP_SUBMITTER1_FULL_NA" VARCHAR2(255),
            "OWNER_CFP_SUBMITTER1_COMPANY" VARCHAR2(255),
            "STATUS" VARCHAR2(30),
            "SESSION_ID" NUMBER,
            "TITLE" VARCHAR2(255),
            "ABSTRACT" VARCHAR2(4000),
            "SESSION_TYPE" VARCHAR2(30),
            "SESSION_CATEGORY" VARCHAR2(30),
            "STREAM" VARCHAR2(30),
            "PRIMARY_TRACK" VARCHAR2(255),
            "OPTIONAL_TRACK" VARCHAR2(255),
            "CROSS_STREAM_TRACK" VARCHAR2(30),
            "SUPPORTING_VIDEO" VARCHAR2(4000),
            "ATTENDEE_ROLE" VARCHAR2(255),
            "TO_RATING" VARCHAR2(30),
            "TO_COMMENTS" VARCHAR2(4000),
            "COMMENTS" VARCHAR2(4000),
            "ORACLE_PARTNERNETWORK" VARCHAR2(30),
            "IS_YOUR_OPN_MEMBERSHIP_UNDER_A" VARCHAR2(255),
            "ORACLE_PARTNER_TYPE" VARCHAR2(255),
            "OPN_MEMBERSHIP_LEVEL" VARCHAR2(30),
            "ORACLE_REGION_BASED" VARCHAR2(30),
            "ORACLE_VALIDATED_INTEGRATION" VARCHAR2(30),
            "HAS_YOUR_COMPANY_ACHIEVED_SPEC" VARCHAR2(4000),
            "PLEASE_DESCRIBE_THE_VALUE_OF_O" VARCHAR2(4000),
            "INCLUDE_CASE_STUDY" VARCHAR2(30),
            "PROVIDE_NAME_OF_THE_CUSTOMER_F" VARCHAR2(255),
            "PLEASE_PROVIDE_A_BRIEF_DESCRIP" VARCHAR2(4000),
            "NON_ORACLE_EMPLOYEE_SPEAKER1_F" VARCHAR2(255),
            "NON_ORACLE_EMPLOYEE_SPEAKER1_C" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER1_FULL" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER1_COMPA" VARCHAR2(255),
            "NON_ORACLE_EMPLOYEE_SPEAKER2_F" VARCHAR2(255),
            "NON_ORACLE_EMPLOYEE_SPEAKER2_C" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER2_FULL" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER2_COMPA" VARCHAR2(255),
            "NON_ORACLE_EMPLOYEE_SPEAKER3_F" VARCHAR2(255),
            "NON_ORACLE_EMPLOYEE_SPEAKER3_C" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER3_FULL" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER3_COMPA" VARCHAR2(255),
            "NON_ORACLE_EMPLOYEE_SPEAKER4_F" VARCHAR2(255),
            "NON_ORACLE_EMPLOYEE_SPEAKER4_C" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER4_FULL" VARCHAR2(255),
            "ORACLE_EMPLOYEE_SPEAKER4_COMPA" VARCHAR2(255),
            "CREATED" DATE,
            "CREATED_BY" VARCHAR2(50),
            "LAST_UPDATE" DATE,
            "LAST_UPDATED_BY" VARCHAR2(50),
             CONSTRAINT "OOW_PAPER_PK" PRIMARY KEY ("ID") ENABLE
       ) ;I am using APEX version 4.0.2.00.07
    Any idea what could be wrong and what can be done to resolve the problem?
    Cheers,
    Andy

    Thanks! Never thought of that.
    --Andy                                                                                                                                                                                                                       

  • HTMLDB Newbie: ORA-01658 error when creating new app or table from sprdsht

    Hey there. I'm new to HTML DB and trying to create a new app (or even a new table) from a simple spreadsheet. I've tried both comma and tab delimited, but get the same error message every time. This is in my workspace on htmldb.oracle.com.
    "ORA-20001: create_table error: ORA-20001: Excel load run ddl error: ORA-01658: unable to create INITIAL extent for segment in tablespace FLOW_693"

    Scott,
    Thanks, but I don't think that's the problem. My workspace is 100Mb, and it's almost empty. I can install & run sample apps just fine, but not create a new app from a spreadsheet. The spreadsheet is small, to: nine columns and about 50 rows.
    Any ideas?

  • ORA-00942 Error when trying to deploy a mapping in Paris

    Hey all,
    I am encountering a "Table or view does not exist" and "SQL Statement Ignored" Error when I deploy a mapping. I have granted all the necessary privileges for each schema but still keep getting the errors, hence the deployment remains invalid. Any thoughts on why this is happening?
    The situation is I have created a mapping that maps data from an external table in the source module to a staging table in the staging module, and besides the regular column length and data type mismatch warning, the mapping is valid. The problem is not being able to deploy this mapping.
    Any feedback would be appreciated. Thanks.

    Did you register your target schema with the WB repository? I found that this happened to me sometimes when I forgot to do that.
    HTH,
    --oswaldo
    [osantos]

  • Version 3.1 fault - ORA-06502 error when creating SQL Report Region/Page

    I usually perfect my query in SQL*PLUS before I create a new report region.
    Consequently, I copy the code into the region wizard to create the new page. However, since we have upgraded to Version 3.1, virtually every report I have tried to create has created the following error:
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    It would appear that a maximum of 960 characters can be used to create the region/page. Perversely, once the page/region has been created, I can then edit the source and include as much code as I want (so far I've not run up against a limit)
    As it's just annoying, but not stopping me doing what I wanted to do, I've not got around to mentioning this error previously, but it occurred to me that I should (so I am!)
    David

    Hi David,
    Thank you for reporting this. Unfortunately, this was a regression introduced in Application Express 3.1. The workaround is to edit the region, as you suggested. This has been filed as Bug 6956070 and will be corrected in the forthcoming Application Express 3.1.1 patch set.
    Joel

  • ORA-01445 error when creating a form on a view

    Hi,
    I am attempting to create a form on a view - the view is a simple select from three tables that are connected to each other via foreign key relationships. When I attempt to submit data via this form, I get the ORA_01445 error. The Oracle8i Error Documentation says that this error is caused when a SELECT statement attempted to select ROWIDs from a view derived from a join operation. Because the rows selected in the view do not correspond to underlying physical records, no ROWIDs can be returned. The solution is to remove ROWID from the view selection clause, then re-execute the statement.
    I did not include the rowid when I created my view so I went to look at the package that is generated by Portal to create the form. Sure enough, rowid was appended to the select statements.
    Are there any workarounds for this? Why is the rowid appended to the select statement? Do I need to build my view another way? We cannot use master-detail forms because the nature of the data does not allow it. We would like to be able to use just one form to update several tables.
    I read in an earlier post that forms cannot be created on views that have DISTINCT, AVG, COUNT, MAX, MIN, GROUP BY, HAVING, START WITH, or CONNECT BY. My view has none of these. It is just a simple select * from a, b, c.

    Melissa,
    This is the current limitation of the forms, we do not support non-updatable views, we expect to have the rowid available, if you want to access non-updatable views, please create a QBE report. If you think this is a very important feature, please file a bug.
    Thanks,
    Dmitry

  • Getting ora-904 error when create objects for the 2DayPlus apex 3.1 demo

    Searched metalink and the forum and can't determine the cause of my error below.
    CREATE TABLE oehr_categories_tab OF oehr_category_typ
    ( category_id PRIMARY KEY)
    NESTED TABLE TREAT
    (OBJECT_VALUE AS oehr_leaf_category_typ).product_ref_list
    STORE AS oehr_prod_ref_list_ntab
    NESTED TABLE TREAT
    (OBJECT_VALUE AS oehr_composite_category_typ).subcategory_ref_list
    STORE AS oehr_subcat_ref_list_ntab
    ORA-00904: : invalid identifier
    DB Version: 9.2.0.7
    Any help would be appreciated.

    Hi,
    I believe the issue is with a new pseudocolumn reference introduced in 10gR2. Kindly refer to the Oracle Database SQL Language Reference on [OBJECT_VALUE Pseudocolumns.|http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/pseudocolumns006.htm]
    A quick workaround for those using Oracle Database 9iR2 or 10gR1 would be to edit the "Installation Script" (under "Supporting Objects"). Edit the "OEHR_CATEGORIES_TAB" DDL to the following:
    bq.      CREATE TABLE oehr_categories_tab OF oehr_category_typ \\     ( category_id PRIMARY KEY) \\     NESTED TABLE TREAT \\     (SYS_NC_ROWINFO$ AS oehr_leaf_category_typ).product_ref_list \\     STORE AS oehr_prod_ref_list_ntab \\     NESTED TABLE TREAT \\     (SYS_NC_ROWINFO$ AS oehr_composite_category_typ).subcategory_ref_list \\     STORE AS oehr_subcat_ref_list_ntab;
    Reinstall the Supporting Objects.
    Hope this helps.
    -Amitabh

  • Why am I getting an ORA-04052 error when I try to compile a Procedure?

    Hi,
    The following procedure I'm getting an ORA-04052 error when I try to compile the following procedure.
    CREATE OR REPLACE PROCEDURE APPS.Find_String (
    pin_referenced_name IN dba_dependencies.referenced_name%TYPE)
    IS
    cursor cur_get_dependancy
    is
    SELECT distinct owner, name, type
      FROM [email protected]        -- prod.world
    WHERE lower(referenced_name) = lower(pin_referenced_name) --'ftbv_salesrep_all_1d'
       AND referenced_type <> 'SYNONYM'
       AND owner <> 'SYS'
    order by name;
    v_owner  varchar2(40);
    v_name   varchar2(50);
    v_type   varchar2(40);
        BEGIN
           dbms_output.put_line(upper(pin_referenced_name)||' is found in the following objects.');
           dbms_output.put_line(' ');
           dbms_output.put_line(RPAD('OWNER', 30, ' ')||RPAD('NAME', 60, ' ')||RPAD('OBJECT TYPE', 30, ' '));
           dbms_output.put_line('-------------------------------------------------------------------------------------------------------------------');
            FOR i IN cur_get_dependancy
            LOOP
                v_owner := RPAD(i.owner, 30, ' ');
                v_name  := RPAD(i.name, 45, ' ');
                v_type  := RPAD(i.type, 30, ' ');
                dbms_output.put_line(v_owner ||v_name|| v_type);
            END LOOP;
    END find_string;I'm using the link [email protected]. The procedure compiles for other database links used in the cursor including the one commented to the right of the code 'prod.world'.
    What's even stranger is that I took the SELECT statement
    SELECT distinct owner, name, type
      FROM [email protected]        -- prod.world
    WHERE lower(referenced_name) = lower(pin_referenced_name) --'ftbv_salesrep_all_1d'
       AND referenced_type <> 'SYNONYM'
       AND owner <> 'SYS'
    order by name;out of the procedure and ran it on the command line using the @pinp.world link, the SQL statement ran just fine. But when I tried to compile the above procedure with that exact same SQL statement with the exact same link I get the following string of errors.
    ORA-04052: error occurred when looking up remote object [email protected]
    ORA-00604: error occurred at recursive SQL level 1
    ORA-02068: following severe error from PINP
    ORA-03113: end-of-file on communication channelHow can the link work just fine in a regular SQL statement but then cause an error when its compiled in code that otherwise compile just fine when using any other link or even just a plain database. Does anyone have any suggestions?

    OK Justin,
    Here's the query by itself run in another database using the @pinp.world link and querying the dba_dependencies table in the pinp.world database. As you can see the query using this link works just fine returning the requested rows. I can't figure out why the compiler is having an issue with essentially this same query when I try to compile it in a cursor in TOAD. Also this is the database (dev1.world) that I'm trying to compile this Procedure in.
    By the way I'm in an Oracle 9.2.0.6 database and TOAD v9.2.
    SQL> conn apps/apps1@dev1
    Connected.
    SQL> SELECT distinct owner, name, type
      2    FROM [email protected]
      3   WHERE lower(referenced_name) = lower('ALL_USERS')
      4     AND referenced_type <> 'SYNONYM'
      5     AND owner <> 'SYS'
      6   order by name;
    OWNER                          NAME                           TYPE
    PUBLIC                         ALL_USERS                      SYNONYM
    XDB                            DBMS_XDBUTIL_INT               PACKAGE BODY
    XDB                            DBMS_XDBZ0                     PACKAGE BODY
    SYSTEM                         MVIEW_EVALUATIONS              VIEW
    SYSTEM                         MVIEW_EXCEPTIONS               VIEW
    SYSTEM                         MVIEW_FILTER                   VIEW
    SYSTEM                         MVIEW_LOG                      VIEW
    SYSTEM                         MVIEW_RECOMMENDATIONS          VIEW
    SYSTEM                         MVIEW_WORKLOAD                 VIEW
    ORASSO                         WWCTX_API                      PACKAGE BODY
    PORTAL                         WWCTX_API                      PACKAGE BODY
    ORASSO                         WWEXP_UTL                      PACKAGE BODY
    PORTAL                         WWEXP_UTL                      PACKAGE BODY
    PORTAL                         WWPOB_API_PAGE                 PACKAGE BODY
    PORTAL                         WWPOF                          PACKAGE BODY
    ORASSO                         WWPRO_PROVIDER_VALIDATION      PACKAGE BODY
    PORTAL                         WWPRO_PROVIDER_VALIDATION      PACKAGE BODY
    PORTAL                         WWSBR_EDIT_ATTRIBUTE           PACKAGE BODY
    PORTAL                         WWSBR_FOLDER_PORTLET           PACKAGE BODY
    PORTAL                         WWSBR_USER_PAGES_PORTLET       PACKAGE BODY
    ORASSO                         WWUTL_API_PARSE                PACKAGE BODY
    OWNER                          NAME                           TYPE
    PORTAL                         WWUTL_API_PARSE                PACKAGE BODY
    PORTAL                         WWUTL_EXPORT_IMPORT_LOV        PACKAGE BODY
    ORASSO                         WWUTL_LOV                      PACKAGE BODY
    PORTAL                         WWUTL_LOV                      PACKAGE BODY
    PORTAL                         WWV_CONTEXT                    PACKAGE BODY
    PORTAL                         WWV_CONTEXT_UTIL               PACKAGE BODY
    PORTAL                         WWV_DDL                        PACKAGE BODY
    PORTAL                         WWV_GENERATE_UTL               PACKAGE BODY
    PORTAL                         WWV_GLOBAL                     PACKAGE
    PORTAL                         WWV_MONITOR_DATABASE           PACKAGE BODY
    PORTAL                         WWV_PARSE_AS_SPECIFIC_USER     PACKAGE BODY
    PORTAL                         WWV_PARSE_AS_USER              PACKAGE BODY
    PORTAL                         WWV_SYS_DML                    PACKAGE BODY
    PORTAL                         WWV_SYS_RENDER_HIERARCHY       PACKAGE BODY
    PORTAL                         WWV_THINGSAVE                  PACKAGE BODY
    PORTAL                         WWV_UTIL                       PACKAGE BODY
    PORTAL                         WWV_UTLVALID                   PACKAGE BODY
    38 rows selected.
    SQL>Let me know what you think.
    Thanks again.

  • ORA-03115 error when calling a Stored Procedure

    Hi All,
    I'm in the process of porting a Pro/C app from NT to Linux. I've installed 8.1.5 on our Linux box and patched it up to 8.1.5.02.
    It all kind of works ok, except that I'm sometimes getting ORA-03115 errors when the app calls a stored procedure. The call in question looks like this:
    EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR resprows[50][3998];
    int numret = 0;
    int numrows= 50;
    int done= 0;
    unsigned long resp_id = 0;
    EXEC SQL END DECLARE SECTION;
    EXEC SQL AT DB_NAME EXECUTE
    BEGIN pkg_something.getdata(
    :resp_id, /* IN */
    :numrows, /* IN */
    :done, /* OUT */
    :resprows, /* OUT */
    :numret /* OUT */
    END;
    END-EXEC;
    The stored procedure basically uses the resp_id value to select rows from a table;
    in each row there is a VARCHAR2(4000) column which it copies into the hostarray resprows.
    There may be anything from 1 to numrows returned from the SP.
    Initially, the resprows rows were defined to be size [4000]. Unfortunately, this caused ORA-02005 errors - I then changed the size to [3998], which seemed to fix the 02005's (although I'm unclear as to the reasons why).
    Now I'm getting the 03115 errors when calling the SP. The oracle manual is not very helpful on what this error means.
    This all works chipper on NT.
    Any ideas?
    Thanks in advance,
    Nigel.
    PS: The database the app is talking to is still hosted on NT.
    null

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

  • ORA-04062 error when running forms with different users

    ORA-04062 error when running forms with different users
    I have a form that has a block that should display some data from another users tables. (The other user's name is dynamic, it's selected from a list box)
    I wrote a stored procedure to get the data from other user's tables.
    When I compile the form and run it with the same user I compiled, it works without any error. But when I run the compiled form with another user I get the ORA-04062 (signature of procedure has been changed) error.
    I tried setting REMOTE_DEPENDENCIES_MODE to SIGNATURE in init.ora but it didn't help.
    My Forms version is 6i with Patch 15.
    Database version is 9.
    Here is my stored procedure:
    TYPE Scenario_Tab IS TABLE OF NUMBER(34) INDEX BY BINARY INTEGER;
    TYPE Open_Curs IS REF CURSOR;
    PROCEDURE Get_Scenarios(User_Name IN VARCHAR2, Scen_Table OUT Scenario_Tab) IS
    Curs Open_Curs;
    i NUMBER;
    BEGIN
    OPEN Curs FOR
    'SELECT Seq_No FROM '|| User_Name ||'.scenario';
    i := 1;
    LOOP
    FETCH Curs INTO Scen_Table(i);
    EXIT WHEN Curs%NOTFOUND;
    i := i + 1;
    END LOOP;
    END Get_Senarios;
    I would be happy to solve this problem. It's really important.
    Maybe somebody can tell me another way to do what I want to do. (getting a list of values from another users tables)

    I think it should be a better solution to create a package,
    and put your own TYPES and procedure into it.
    CREATE OR REPLACE PACKAGE PKG_XXX IS
    TYPE TYP_TAB_CHAR IS TABLE OF .... ;
    PROCEDURE P_XX ( Var1 IN VARCHAR2, var2 IN OUT TYP_TAB_CHAR );
    END ;
    Then in your Form :
    Declare
    var PKG_XXX.TYP_TAB_CHAR ;
    Begin
    PKG_XXX.P_XX( 'user_name', var ) ;
    End ;

  • Error when creating index with parallel option on very large table

    I am getting a
    "7:15:52 AM ORA-00600: internal error code, arguments: [kxfqupp_bad_cvl], [7940], [6], [0], [], [], [], []"
    error when creating an index with parallel option. Which is strange because this has not been a problem until now. We just hit 60 million rows in a 45 column table, and I wonder if we've hit a bug.
    Version 10.2.0.4
    O/S Linux
    As a test I removed the parallel option and several of the indexes were created with no problem, but many still threw the same error... Strange. Do I need a patch update of some kind?

    This is most certainly a bug.
    From metalink it looks like bug 4695511 - fixed in 10.2.0.4.1

Maybe you are looking for

  • Need to add Ignore Blank Cells In Values in Flex Component - How?

    Can anyone help in providing any code that will add into the properties the capability to Ignore Blank Cells in Values?

  • List of exchange users with mailbox size per database.

    Hello Friends, Need small help i need to take out the list of users start with Alphabet A, B , C till Z per database along with their mailbox size limit so is there any simple way to get the list. Thanks Amit

  • Movie dimensions, blog vs podcast?

    I want to create of video podcasts series. I create a podcast, drop a 16x9 movie on the entry page. It's 16x9. I change to the podcast (list) page and it's square. Can't fix it because you can't edit this page, only the enty page which is the right s

  • How to view aperture library from another computer on network?

    Hi, I'd like to simply view (not edit) my aperture library from another computer on my home network. The aperture library resides on a mac pro, and I'd like to see the images on a macbook pro to show family members. On the surface, this seems like a

  • UnknowHostException when invoking a remote WebService

    I am new at web services and i got develop the follow: I have created a web service with JDeveloper with the option : WebService Client an Proxy. I have not selected the option of copy wsdl to proyect because when I set the package names the web serv