Error: ORA-13199 following a SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT call

Good afternoon all,
I am new to this group. I tried to search the web for hints and clues to my error, but could not find a solution to my problem, so I decided to post here. I have an existing spatial table in which I recently inserted new values. I am trying to validate them, using the SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT function and I am getting errors:
BEGIN
SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT('ALS.ALS_GEO_SVC_AREAS','GEOLOC','VALIDATION_RESULTS');
END;
Error at line 1
ORA-13199: Invalid GEOMETRY table (or table does not exist)
ORA-06512: at "MDSYS.MD", line 1723
ORA-06512: at "MDSYS.MDERR", line 17
ORA-06512: at "MDSYS.SDO_GEOM", line 2828
ORA-06512: at line 2
Script Terminated on line 1.
The spatial table is in a different schema = 'ALS' and is named 'ALS_GEO_SVC_AREAS'; the geometry column = 'GEOLOC'.
I created the validation table ('VALIDATION_RESULTS') as such:
CREATE TABLE VALIDATION_RESULTS(
sdo_rowid ROWID,
status VARCHAR2(2000));
I am using TOAD 9.7.2.5.
Can someone in the community help with this error?
Thank you.
Avridog

Avridog,
The only way I can see to get this cross-schema validation to work is via a view.
Here is my use case.
DROP  TABLE VALIDATION_RESULTS;
CREATE TABLE VALIDATION_RESULTS(
sdo_rowid ROWID,
status VARCHAR2(2000)
select count(*) from CODESYS.GEODPOINT2D;
grant select on geodpoint2d to public with grant option;
create view geodpoint2d as select * from codesys.geodpoint2d;
insert into user_sdo_geom_metadata (table_name,column_name,diminfo,srid)
select table_name,column_name,diminfo,srid
  from all_sdo_geom_metadata
where owner = 'CODESYS' and table_name = 'GEODPOINT2D' and column_name = 'GEOM';
commit;
BEGIN
SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT('GEODPOINT2D','GEOM','VALIDATION_RESULTS');
END;
Select * from VALIDATION_RESULTS;
SDO_ROWID STATUS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
NULL      Rows Processed <500>This worked for me (all points passed validation). If it works for you, and you believe your question is answered please award points.
regards
Simon

Similar Messages

  • Error ORA-00907 with query  SDO_GEOM.SDO_DIFFERENCE

    Hi,
    I have following query:
    SELECT SDO_GEOM.SDO_DIFFERENCE(
    SDO_RELATE(square.geometry, SDO_GEOM.SDO_BUFFER(MDSYS.SDO_GEOMETRY(3001, 1, MDSYS.SDO_POINT_TYPE(424, 1272, 0) , NULL, NULL), 100, 0.05,'unit=m arc_tolerance=0.005'), 'mask=ANYINTERACT querytype=WINDOW') = 'TRUE',
    SDO_RELATE(square.geometry, SDO_GEOM.SDO_BUFFER(MDSYS.SDO_GEOMETRY(3001, 1, MDSYS.SDO_POINT_TYPE(276, 1274, 0) , NULL, NULL), 100, 0.05,'unit=m arc_tolerance=0.005'), 'mask=ANYINTERACT querytype=WINDOW') = 'TRUE',
    0.001
    Always get the ora-00907: a bracket is missing-error.
    Any help is really appreciated. Is there a error in the query?
    Regards Ronald.

    Hi Ronald,
    try following:
    SELECT SDO_GEOM.SDO_DIFFERENCE(
        SELECT square.geometry from square where
          SDO_RELATE (square.geometry, SDO_GEOM.SDO_BUFFER(
              MDSYS.SDO_GEOMETRY(
                3001, 1, MDSYS.SDO_POINT_TYPE(424, 1272, 0) , NULL, NULL
              ), 100, 0.05,'unit=m arc_tolerance=0.005'
            ), 'mask=ANYINTERACT querytype=WINDOW'
          ) = 'TRUE'
        SELECT square.geometry from square where
          SDO_RELATE (square.geometry, SDO_GEOM.SDO_BUFFER(
              MDSYS.SDO_GEOMETRY(
                3001, 1, MDSYS.SDO_POINT_TYPE(276, 1274, 0) , NULL, NULL
              ), 100, 0.05,'unit=m arc_tolerance=0.005'
            ), 'mask=ANYINTERACT querytype=WINDOW'
          ) = 'TRUE'
        0.001   
    FROM DUAL   

  • ORA-02068: following severe error from db link

    Hi,
    I have the following piece of code which gives an error.
    FOR items IN (SELECT DISTINCT item FROM ccm_items@caav_link a)
    LOOP
    itemtrans.process_item@manuf_link(items.item);
    END LOOP;
    Procedure process_item may take several hours to complete execution. Hence after processing one or two items, I get an error "ORA-02068: following severe error from caav_link
    ORA-03113: end-of-file on communication channel"
    I guess this occurs due to some timeout issue. Can you please give some pointers on why this issue occurs and how to avoid it? Also note that I need to use the same link after the loop. So a timeout could cause a problem there also.
    Thanks,
    Blesson

    May be this link will be useful:
    http://www.dba-oracle.com/t_ora_02068_following_severe_error_from_stringstring.htm

  • Ora-02068 following severe error & ora-03113 while connecting thru DB LINK

    Hi All,
    I am trying to connect to remote Database by using DB Link facing the below error.
    ora-02068 following severe error & ora-03113 end of communication channel.
    Version of Database - 8.0.6 ( source Database)
    Target Database version - 11g ( Target Database)
    Oracle Client s/w used - 9i
    TNSPING from 8 version database to 11g is successful
    C:\Documents and Settings\user>tnsping prdd
    TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 30-MAY-20
    13 10:40:02
    Copyright (c) 1997 Oracle Corporation. All rights reserved.
    Used parameter files:
    D:\oracle9i\network\admin\sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (host =xx.xxx.xxx.xx) (Port = 1631))) (CONNECT_DATA =(SID = PRDD)))
    OK (30 msec)
    Connection successful from 8 to 11 Database remotely
    C:\Documents and Settings\user>sqlplus
    SQL*Plus: Release 9.2.0.1.0 - Production on Thu May 30 10:43:00 2013
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Enter user-name:username/pwd@prdd
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, Automatic Storage Management, Oracle Label Security, OLAP
    Data Mining, Oracle Database Vault and Real Application Testing options
    SQL>
    Connected to:
    Oracle8 Enterprise Edition Release 8.0.6.0.0 - Production
    With the Partitioning and Objects options
    PL/SQL Release 8.0.6.0.0 - Production
    SQL> select * from dual@xxx_dblink.world;
    select * from dual@xxx_dblink.world
    ERROR at line 1:
    ORA-02068: following severe error from xxx_dblink
    ORA-03113: end-of-file on communication channel
    DBLink got created successfully but when ever trying to test the DBlink as above facing the below issue,please help.
    Thanks in advance.

    8.0.6 was desupported a LOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNGGGGGGGGGGGGG time ago
    (you were probably still in your dipers)
    Sqlnet is not compatible for that many releases
    (there has been
    8.1.5
    8.1.6
    8.1.7
    9.0.1
    9.2.0
    10.1.0
    10.2.0
    11.1.0
    11.2.0
    So nine releases.
    This is software, not gasoline.
    Sybrand Bakker
    Senior Oracle DBA

  • ORA-13199: 0D geometries are not supported by geometry WKB/WKT generation.

    I want to get WKB data of some SDO_GEOMETRY field. I've tryed to use get_wkb function but when I execute statement like that
    select c.geom.get_wkb() from ob c
    I get error:
    ORA-13199: 0D geometries are not supported by geometry WKB/WKT generation.
    What does this error "means" and what should I do?
    Thanks for answers.
    Matej

    Hello,
    I get the same message on an Oracle 10.2.0.1.0 system.
    ORA-19199: 0D geometries are not supported by geometry WKB/WKT generation.
    ORA-06512: in "MDSYS.MD", Zeile 1723
    I use following select:
    select b.geom.GET_WKT() from bio2006 b where b.bio2006_ = 86
    When I use another table this command works fine:
    select a8.geom.GET_WKT() from multinet.mn_a8 a8 where a8.name = 'Aidhausen'
    Both tables are filled by sqlldr (ctl & dat - files).
    The both files look on the first view equal...
    The meta data for bio2006 are equal to a8, here's the generated insert statement
    INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
    VALUES ('BIO2006', 'GEOM',
    MDSYS.SDO_DIM_ARRAY
    (MDSYS.SDO_DIM_ELEMENT('X', -180.000000000, 180.000000000, 0.500000000),
    MDSYS.SDO_DIM_ELEMENT('Y', -90.000000000, 90.000000000, 0.500000000)
    8307);
    Does anybody know the reason for the error message?
    Thanks,
    Matthias

  • Error 'ORA-01403 no data found', if a procedure called through $Universe

    Hello,
    we use at our customer the scheduling software $Universe. The problem follows is happend at calling PL/SQL-procedures within SQL*Plus:
    Within the calling procedur another subprogram will be called. This program crashed on select of currval with the error 'ORA-01403 no data found'. This error happens only, if the procedure called through $Universe. If the procedure called directly from SQL*Plus or about a unix shell-script, no error happens.
    About the command "select saddr,sid,serial# from sys.V_$SESSION where
    username ='xxx';" we select the Session_ID's. These are identically before and after call of the procedure!
    Do you have an idea, how the problem can be?
    Next information about OS, releases, settings of Oracle-Session-Parameters, and the crashing procedure:
    SQL*Plus: Release 8.1.6.0.0 - Production on Fri Mar 15 13:25:05 2002
    (c) Copyright 1999 Oracle Corporation. All rights reserved.
    Connected to:
    Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.6.0.0 - Production
    OS: HP-UX11
    ORACLE-Server NLS-parameters on HP-UX:
    NLS_LANGUAGE               AMERICAN
    NLS_TERRITORY               AMERICA
    NLS_CURRENCY               $
    NLS_ISO_CURRENCY          AMERICA
    NLS_NUMERIC_CHARACTERS          .,
    NLS_CALENDAR               GREGORIAN
    NLS_DATE_FORMAT               DD-MON-RR
    NLS_DATE_LANGUAGE          AMERICAN
    NLS_CHARACTERSET          WE8DEC
    NLS_SORT               BINARY
    NLS_TIME_FORMAT               HH.MI.SSXFF AM
    NLS_TIMESTAMP_FORMAT          DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT          HH.MI.SSXFF AM TZH:TZM
    NLS_TIMESTAMP_TZ_FORMAT          DD-MON-RR HH.MI.SSXFF AM TZH:T
    NLS_DUAL_CURRENCY          $
    NLS_NCHAR_CHARACTERSET          WE8DEC
    NLS_COMP               BINARY
    Windows-desktop NLS-parameters:
    ALTER SESSION set NLS_LANGUAGE = 'GERMAN';
    ALTER SESSION set NLS_TERRITORY = 'GERMANY';
    ALTER SESSION set NLS_ISO_CURRENCY = 'GERMANY';
    ALTER SESSION set NLS_NUMERIC_CHARACTERS = ',.';
    ALTER SESSION set NLS_CALENDAR = 'GREGORIAN';
    ALTER SESSION set NLS_DATE_FORMAT = 'DD/MM/YY';
    ALTER SESSION set NLS_DATE_LANGUAGE = 'GERMAN';
    ALTER SESSION set NLS_SORT = 'GERMAN';
    ALTER SESSION set NLS_TIME_FORMAT = 'HH24:MI:SSXFF';
    ALTER SESSION set NLS_TIMESTAMP_FORMAT = 'DD.MM.RR HH24:MI:SSXFF';
    ALTER SESSION set NLS_TIME_TZ_FORMAT = 'HH24:MI:SSXFF TZH:TZM';
    ALTER SESSION set NLS_TIMESTAMP_TZ_FORMAT = 'DD.MM.RR HH24:MI:SSXFF
    TZH:TZM';
    ALTER SESSION set NLS_DUAL_CURRENCY = '?';
    ALTER SESSION set NLS_COMP = 'BINARY';
    PROCEDURE PROC_NEW_ID (p_value IN NUMBER,
    p_field IN VARCHAR2,
    p_table IN VARCHAR2,
    p_currval OUT NUMBER)
    IS
    v_stmt VARCHAR2(200);
    v_currval NUMBER;
    BEGIN
    -- Bildung des SQL-Statements.
    v_stmt := 'INSERT INTO '||p_table|| '('|| p_field || ') VALUES
    ('||p_value||')';
    -- Ausfuehren des SQL-Statements.
    EXECUTE IMMEDIATE v_stmt;
    COMMIT;
    -- Bildung des SQL-Statements.
    v_stmt := 'SELECT SEQ_'|| p_table || '.CURRVAL FROM DUAL';
    -- Ausfuehren des SQL-Statements.
    EXECUTE IMMEDIATE v_stmt INTO v_currval;
    -- Wertrueckgabe
    p_currval := NVL(v_currval,0);
    EXCEPTION
    WHEN OTHERS THEN
    pkg_mira_protokoll.proc_write_error_fwd
    (pkg_mira_consts.act_error,
    SQLCODE,
    SQLERRM(SQLCODE),
    'PROC_NEW_ID');
    p_currval := 0;
    RAISE;
    END;
    Thanks for your request!
    Best regards
    Esser Office Consulting KG
    J|rgen Esser

    This forum is for posting feedback about the OTN site.
    The best place for your question is probably a Portal forum.
    There is a list of Portal forums here:
    http://forums.oracle.com/forums/index.jsp?cat=13

  • ORA-02068: following severe error from dblink

    Dear friends,
    My database (oracle 9.2.0.8.0) will call another database's (oracle 9i cluster) view through DB Link to get some data.
    If we are to access the data for the first time in a particular session, it gives the output within a second.
    But if we access the data after 45mins in the same session(already connection is open), the query is running for 9 mins it throws an oracle error.
    There is no network issue also(solaris 5.8 server).
    select * from <synonym> where <column_name>=<Value>;
    synonym is created in my database for remote database view (schema_name.view_name@dblink_name)
    please find the Oracle error below:
    ORA-02068: following severe error from RAMBOMAX
    ORA-03113: end-of-file on communication channel
    SID EVENT STATE WAIT_TIME SECONDS_IN_WAIT P1 P2 P3 SQL_HASH_VALUE
    547 SQL*Net message to client WAITED KNOWN TIME -1 0 1413697536 1 0 951575186
    283 SQL*Net message from dbli WAITING 0 441 675562835 1 0 3503340408
    298 SQL*Net message from dbli WAITING 0 199 675562835 1 0 3503340408
    572 SQL*Net message from dbli WAITING 0 485 675562835 1 0 3503340408
    632 SQL*Net message from dbli WAITING 0 358 675562835 1 0 3503340408
    634 SQL*Net message from dbli WAITING 0 250 675562835 1 0 3503340408
    581 SQL*Net message from dbli WAITING 0 208 675562835 1 0 3503340408
    561 SQL*Net message from dbli WAITING 0 376 675562835 1 0 3503340408
    520 SQL*Net message from dbli WAITING 0 413 675562835 1 0 3503340408
    What could be the reason for this? could some one please help me on this?
    Thanks,
    Prathap

    user8724104 wrote:
    Dear friends,
    What could be the reason for this? could some one please help me on this?
    Thanks,
    PrathapHi Prathap,
    you should focus your research for solution on [ORA-03113|http://forums.oracle.com/forums/search.jspa?threadID=&q=ORA-03113+link&objID=f61&dateRange=all&userID=&numResults=15]

  • ORA-13199 Error on a spatial query

    Hi,
    I am getting following Error on a spatial query (on version 11.1.0.7)
    "ORA-13199: Dimensionalities of geometry (GTYPE 3003) and diminfo (2) do not match.
    ORA-06512: at "MDSYS.MD", line 1723
    ORA-06512: at "MDSYS.MDERR", line 17
    ORA-06512: at "MDSYS.SDO_CS", line 2809
    ORA-06512: at "MDSYS.SDO_3GL", line 182 "
    The same query used to work fine on 10.2.
    My query looks like
    Select Sfilt.GEOMETRY FROM
    (Select TA.GEOMETRY FROM LANDPLAN.TOPOAREA TA, TEST.PLAN PL
    WHERE PL.PLAN_ID = 12345 AND TA.LOC_CODE = 7
    AND SDO_FILTER(TA.GEOMETRY,PL.GEOMETRY) = 'TRUE'
    ) Sfilt
    ,TEST.PLAN PL2 WHERE
    PL2.PLAN_ID = 12345 AND
    SDO_RELATE(PL2.GEOMETRY, sfilt.GEOMETRY, 'mask=anyinteract') = 'TRUE';
    in the above data TEST.PLAN table is 2D table and LANDPLAN.TOPOAREA is 3D table and both are indexed.
    Any help appriciated..

    Siva,
    Thank you for your response. Now I have tried by increasing the DIMINFO (rebuiding the index) to three.
    Now it shows below error..
    ORA-29902: error in executing ODCIIndexStart() routine
    ORA-13243: specified operator is not supported for 3- or higher-dimensional R-tree
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 416
    I didn't reason now...for clarity
    Can I have 3d layer with 2d index's ?
    If Yes, can Spatial query work using these 2d index's against other 2d layer and 3d layers ?

  • SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT returns ORA-13199 SRID does not exist

    Hi everyone,
    I'm facing with this error while I was trying to list wrong spatial data (11.0.2.0.3 RAC (AIX))
    Select   *
    From     table
    Where    SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT (GEOMETRY,0.001)! ='TRUE'
    It returns :
    ORA-13199: SRID does not exists
    ORA-06512: at "MDSYS.MD", line 1723
    ORA-06512: at "MDSYS.MDERR", line 17
    ORA-06512: at "MDSYS.SDO_CS", line 5328
    ORA-06512: at "MDSYS.SDO_GEOM", line 483
    ORA-06512: at "MDSYS.SDO_GEOM", line 560
    ORA-06512: at line 1
    Is there anyone who faced with this kind of issue or any idea ?
    Thanks in advance
    Regards

    There is no such SRID 2000303. However, this one sure looks like it does the same thing. Replace all the SRID values with 2320 and you should be set.
    SQL> select *
      2  from MDSYS.SDO_COORD_REF_SYSTEM
      3  where srid = 2320;
          SRID COORD_REF_SYS_NAME                                                              COORD_REF_SYS_KIND
    COORD_SYS_ID  DATUM_ID GEOG_CRS_DATUM_ID SOURCE_GEOG_SRID PROJECTION_CONV_ID CMPD_HORIZ_SRID CMPD_VERT_SRID
    INFORMATION_SOURCE
    DATA_SOURCE                              IS_LE LEGACY_CODE
    LEGACY_WKTEXT
    LEGACY_CS_BOUNDS(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
    IS_VA SUPPO
          2320 ED50 / TM30                                                                      PROJECTED
            4530                        6230            4230              16370
    General Command of Mapping via EuroGeographics; http://crs.ifag.de/
    EPSG                                    FALSE
    TRUE  TRUE

  • [Jena RDF] Error message ORA-13199

    Hello all, ,
    I use D2Rq for transformation of SGBD(SQLserveur at Oracle a semantic graph c12 through, used file .ttl)
    My error message is the following result:
    java.sql.SQLException: ORA-13199: During LBV: [04-NOV-14 03.07.15.421063000 PM -05:00]
    ORA-13199: Element Parse Error: Invalid numeric value [debug info: GCVN-numeric: 114.4000015258789E0] (value: "114.4000015258789E0"^^<http://www.w3.org/2001/XMLSchema#decimal>) [
    ORA-06512: at "MDSYS.MD", line 1723
    ORA-06512: at "MDSYS.MDERR", line 17
    ORA-06512: at "MDSYS.SDO_RDF", line 86
    ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 1307
    ORA-06512: at line 1
    ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 2826
    I am looking for a solution with Jena API? Or a way to hide exhibitors decimal (E0) !!
    Any suggestions would be welcome
    Ce message a été modifié par : 2773504

    Hello everyone, 
    I use d2rq to the transformation of relational and RDF file with the Association d2rq attached.
    The result is that when I recovered figures initially BigDecimale (in the relational database) I transform them ^^Double or ^^Decimal I have the scientific concept that is used with an E?
    Message: ORA-13199: Element Parse Error: Invalid numeric value [debug info: GCVN-numeric: 114.4000015258789E0] (value: "114.4000015258789E0"^^<http://www.w3.org/2001/XMLSchema#decimal>)
    How it is possible to resolve this behavior?
    Thins.

  • Getting Errors: could not find program unit being called ORA-0651

    Hello,
    I'm new to Oracle and I need your help. I'm using Oracle SQL Developer and I have a package that compiles without errors (only warnings) but it still shows a little red x in package's body icon. I get the following error message:
    ORA-04063: package body "SAFETYUSER.SEL_INCIDENT_INFO" has errors ORA-06508: PL/SQL: could not find program unit being called ORA-06512: at line 1
    Here is the body of the package. I would appreciate your help.:
    create or replace PACKAGE BODY "SEL_INCIDENT_INFO" as
    procedure sel_0022Info
    in_ID0022 in number,
    out_eName out t_varChar2,
    out_mName out t_varChar2,
    out_Work out t_varChar2,
    out_Loc out t_varChar2,
    out_Sign out t_varChar2,
    out_obsDate out t_varChar2,
    out_veh out t_varChar2,
    out_vehType out t_varChar2,
    out_vehTag out t_varChar2,
    out_secSup out t_varChar2,
    out_dlic out t_varChar2,
    out_dlType out t_varChar2,
    out_rc out t_varChar2,
    out_JTitle out t_varChar2,
    out_actTake out t_varChar2,
    out_jobfunc out t_varchar2,
    out_ecuid out t_varchar2,
    out_mcuid out t_varchar2
    is
    -- cursor to get ecuid ID for entered employee cuid
    CURSOR cur0022 IS
    select o.ecuid,o.mcuid,o.workperf,o.loc,o.obsdate,o.sign,o.dlid,o.secid,o.vehid, o.action, o.eID (NMC 11/28/2006)
    select o.euid,o.muid,o.workperf,o.loc,o.obsdate,o.sign,o.dlid,o.secid,o.vehid, o.action, o.eID
    from TBL_0022 o
    where o.id0022 = in_ID0022;
    -- variables
    out_eFN varchar2(50);
    out_mFN varchar2(50);
    out_eJF varchar2(4);
    out_DL varchar2(100);
    out_DLT varchar2(100);
    out_Sec varchar2(100);
    out_Vh varchar2(50);
    out_VhT varchar2(50);
    out_VhTg varchar2(50);
    out_eID varchar2(7);
    out_eRC varchar2(10);
    out_signFull varchar2(50);
    out_eJT varchar2(100);
    -- rows for cursors
    row0022 cur0022%rowtype;
    begin
    open cur0022;
    fetch cur0022 into row0022;
    sel_eFullName(row0022.ecuid,out_eFN, out_eJF,out_eID,out_eRC,out_eJT); (NMC 11/28/2006)
    sel_eFullName(row0022.euid,out_eFN, out_eJF,out_eID,out_eRC,out_eJT); -- Changed ecuid to euid NMC 11/28/2006
    --sel_mFullName(row0022.mcuid,out_mFN);
    sel_DL(row0022.DLID,out_DL,out_DLT);
    sel_Sec(row0022.secid,out_Sec);
    sel_Veh(row0022.vehid,out_Vh,out_VhT,out_VhTg);
    out_veh(1) := out_vh;
    out_vehType(1) := out_vht;
    out_vehTag(1) := out_vhtg;
    out_secSup(1) := out_Sec;
    out_dlic(1) := out_DL;
    out_dlType(1) := out_DLT;
    out_eName(1) := out_eFN;
    out_mName(1) := out_mFN;
    out_Work(1) := row0022.workperf;
    out_Loc(1) := row0022.loc;
    sel_mfullname(row0022.sign,out_signFull);
    out_Sign(1) := row0022.sign;--out_signFull;
    out_obsDate(1) :=row0022.obsdate;
    out_actTake(1) :=row0022.action;
    out_jobFunc(1) := out_eJF;
    out_rc(1) := out_eRC;
    out_ecuid(1) := row0022.ecuid; (NMC 11/28/2006)
    out_ecuid(1) := row0022.euid; -- Changed ecuid to euid. (NMC 11/28/2006)
    out_mcuid(1) := row0022.mcuid;  (NMC 11/28/2006)
    out_mcuid(1) := row0022.muid; -- Changed mcuid to muid. (NMC 11/28/2006)
    out_JTitle(1) := out_eJT;
    close cur0022;
    end;
    procedure sel_eFullName
    in_0022EcuID in varchar2, --number,
    out_eFN out varChar2,
    out_eJF out varchar2,
    out_eID out varchar2,
    out_eRC out varchar2,
         out_eJT out varchar2
    is
    -- cursor to get ecuid ID for entered employee cuid
    CURSOR curCUID IS
    select e.efn, e.eln,e.jobfunc,ecuid,rc,e.eid, e.jTitle
    from TBL_EINFO e
    where e.ecuid = in_0022ecuid
    order by e.eid desc;--eid = in_0022EID;
    -- rows for cursors
    rowCUID curCUID%rowtype;
    begin
    open curCUID;
    fetch curCUID into rowCUID;
    out_eFN := rowCUID.efn||' '||rowCUID.eln;
    out_eJF := rowCUID.jobfunc;
    out_eID := rowCUID.eid;--ecuid;
    out_eRC := rowCUID.rc;
    out_eJT := rowCUID.jTitle;
    close curCUID;
    end;
    procedure sel_mFullName
    in_mcuid in varchar2,
    out_mFN out varChar2
    is
    -- cursor to get ecuid ID for entered employee cuid
    CURSOR curCUID IS
    select m.mname
    from TBL_managers m
    where m.mcuid = in_mcuid;
    -- rows for cursors
    rowCUID curCUID%rowtype;
    begin
    open curCUID;
    fetch curCUID into rowCUID;
    out_mFN := rowCUID.mname;
    close curCUID;
    end;
    procedure sel_DL
    in_DLID in number,
    out_DL out varChar2,
    out_DLT out varChar2
    )is
    -- get Last DL
    CURSOR curDL(parDLID number)IS
    SELECT D.DL, D.DLTYPE, D.DLID
    FROM tbl_DL D
    WHERE D.DLID = parDLID;
    -- rows for cursors
    rowDL curDL%rowtype;
    begin
    -- get DL if not 0
    open curDL(in_DLID);
    fetch curDL into rowDL;
    if(rowDL.DL!='0')then
    out_DL := rowDL.dl;
    else
    out_DL := '';
    end if;
    if(rowDL.DLType !='0')then
    out_DLT := rowDL.dltype;
    else
    out_DLT := '';
    end if;
    close curDL;
    end;
    procedure sel_Sec
    in_SecID in number,
    out_Sec out varChar2
    )is
    -- get Last Second Supervisor
    CURSOR curSec(parSecID number)IS
    SELECT s.Super
    FROM tbl_SecSup s
    WHERE s.secsID = parSecID;
    -- rows for cursors
    rowSec curSec%rowtype;
    begin
    -- get Sec if not 0
    open curSec(in_SecID);
    fetch curSec into rowSec;
    if(rowSec.Super!='0')then
    out_Sec := rowSec.Super;
    else
    out_Sec := '';
    end if;
    close curSec;
    end;
    procedure sel_Veh
    in_VehID in number,
    out_Veh out varChar2,
    out_VType out varChar2,
    out_VTag out varChar2
    )is
    -- get Last Second Supervisor
    CURSOR curVeh(parVehID number)IS
    SELECT v.vehicle, v.vehtype, vehtagnumber
    FROM tbl_Vehicle v
    WHERE v.vehID = parVehID;
    -- rows for cursors
    rowVeh curVeh%rowtype;
    begin
    -- get vehicle if not 0
    open curVeh(in_VehID);
    fetch curVeh into rowVeh;
    if(rowVeh.vehicle!='0')then
    out_Veh := rowVeh.Vehicle;
    else
    out_Veh := '';
    end if;
    if(rowVeh.vehtype!='0')then
    out_VType := rowVeh.vehtype;
    else
    out_VType := '';
    end if;
    if(rowVeh.vehtagnumber!='0')then
    out_VTag := rowVeh.vehtagnumber;
    else
    out_VTag := '';
    end if;
    close curVeh;
    end;
    procedure sel_ObsIds(
    in_IncID in number,
    out_obsID out t_number
    is
    -- cursor
    cursor curFindObsID is
    select o.obsID from tbl_obs o where o.id0022 = in_incID;
    -- variables
    obsExist tbl_Obs.obsid%type;
    pcount number default 1;
    begin
    FOR xLoop IN curFindObsID
    LOOP
    out_obsID(pcount) := xLoop.obsID;
    pcount := pcount + 1;
    END LOOP;
    end;
    procedure sel_ObsIdsWSitem(
    in_IncID in number,
    in_SitemID in number,
    out_obsID out t_number
    is
    -- cursor
    cursor curObsIDwSitemID is
    select o.obsID from tbl_obs o where o.id0022 = in_incID and o.sitem_id = in_sitemID;
    -- variables
    pcount number default 1;
    begin
    FOR xLoop IN curObsIDwSitemID
    LOOP
    out_obsID(pcount) := xLoop.obsID;
    pcount := pcount + 1;
    END LOOP;
    end;
    procedure delObsId(
    in_obsID in number
    is
    begin
    DELETE FROM tbl_obs o WHERE (o.obsID=in_obsID);
    end;
    procedure sel_last0022(
    in_ecuid in varchar2,
    --in_mcuid in varchar2,
    out_secSup out t_varChar2,
    out_dlic out t_varChar2,
    out_dlType out t_varChar2,
    out_rc out t_varChar2,
    out_veh out t_varChar2,
    out_vehtag out t_varChar2,
    out_vehtype out t_varChar2,
    out_eName out t_varChar2,
    out_mcuid out t_varChar2,
    out_ecID out t_varchar2,
    out_jobFunc out t_varChar2,
    out_jTitle out t_varchar2
    is
    ---cursor
    cursor curGetLast0022 is
    select o.vehid, o.dlid, o.secid, o.eid, o.mcuid (NMC 11/28/2006)
    select o.vehid, o.dlid, o.secid, o.eid, o.muid
    from tbl_0022 o
    -- where o.ecuid = in_ecuid and o.mcuid = in_mcuid (NMC 11/28/2006)
    where o.euid = in_ecuid and o.mcuid = in_mcuid Changed ecuid to euid (NMC 11/28/2006)
    order by o.id0022 desc;
    ---variables
    row0022 curGetLast0022%rowtype;
    out_eFN varchar2(50);
    out_mFN varchar2(50);
    out_eJF varchar2(4);
    out_DL varchar2(50);
    out_DLT varchar2(50);
    out_Sec varchar2(50);
    out_Vh varchar2(50);
    out_VhT varchar2(50);
    out_VhTg varchar2(50);
    out_eRC varchar2(10);
    out_eID varchar2(7);
    out_eJT varchar2(100);
    pOut_mCuid varchar2(7);
    begin
    open curGetLast0022;
    fetch curGetLast0022 into row0022;
    sel_eFullName(in_ecuid,out_eFN, out_eJF,out_eID,out_eRC,out_eJT);
    --sel_mFullName(in_mcuid,out_mFN);
    sel_DL(row0022.DLID,out_DL,out_DLT);
    sel_Sec(row0022.secid,out_Sec);
    sel_Veh(row0022.vehid,out_Vh,out_VhT,out_VhTg);
    out_veh(1) := out_vh;
    out_vehType(1) := out_vht;
    out_vehTag(1) := out_vhtg;
    out_secSup(1) := out_Sec;
    out_dlic(1) := out_DL;
    out_dlType(1) := out_DLT;
    out_eName(1) := out_eFN;
         if(row0022.mcuid IS NULL)then
              sel_EInfoMCuid(in_ecuid,pOut_mCuid);
              out_mcuid(1) := pOut_mCuid;
         else
              out_mcuid(1) := row0022.mcuid; (NMC 11/28/2006)
    out_mcuid(1) := row0022.muid; -- Changed mcuid to muid. (NMC 11/28/2006)
         end if;
         --sel_EInfoMCUID(in_ecuid,pOut_mCuid);
         --out_mcuid(1) := pOut_mCuid;
    out_rc(1) := out_eRC;
    out_ecID(1) := out_eID;
    out_jobfunc(1) := out_eJF;
         out_jTitle(1) := out_eJT;
    close curGetLast0022;
    end;
    procedure sel_EInfoMCUID(
    pIn_ecuid in varchar2,
    out_mcuid out varchar2
    is
    -- cursor
    cursor curEInfoMCuid is
    select e.eid, e.mcuid from tbl_einfo e where e.ecuid = pIn_ecuid order by e.eid desc;
    -- variables
    rowMCuid curEInfoMCuid%rowtype;
    begin
         open curEInfoMCuid;
         fetch curEInfoMCuid into rowMCuid;
         close curEInfoMcuid;
         out_mcuid := rowMCuid.mcuid;
    end;
    procedure sel_empInfo
    in_0022EcuID in varchar2, --number,
    out_eFN out t_varchar2,
    out_eJF out t_varchar2,
    out_eID out t_varchar2,
    out_eRC out t_varchar2,
         out_eJT out t_varchar2,
         out_eStA out t_varchar2,
         out_eStaN out t_varchar2,
         out_eMcuid out t_varchar2
    is
    -- cursor to get ecuid ID for entered employee cuid
    CURSOR curCUID IS
    select e.efn, e.eln,e.jobfunc,ecuid,rc,e.eid, e.jTitle,e.stA, e.stacode,e.MCUID
    from TBL_EINFO e
    where e.ecuid = in_0022ecuid
    order by e.eid desc;--eid = in_0022EID;
    -- rows for cursors
    rowCUID curCUID%rowtype;
    begin
    open curCUID;
    fetch curCUID into rowCUID;
    out_eFN(1) := rowCUID.efn||' '||rowCUID.eln;
    out_eJF(1) := rowCUID.jobfunc;
    out_eID(1) := rowCUID.eid;--ecuid;
    out_eRC(1) := rowCUID.rc;
    out_eJT(1) := rowCUID.jTitle;
    out_eStA(1) := rowCUID.sta;
    out_eStaN(1) := rowCUID.staCode;
    out_eMcuid(1) := rowCUID.mcuid;
    close curCUID;
    end;
    end;

    This is the results of that query:
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    PLW-07203: Message 7203 not found; No message file for product=plsql, facility=PLW
    40 rows selected

  • Blob writing error      ORA-29532 Java call terminated Unsupported feature

    Hi there,
    I've got the following Java code which tries to write to a BLOB file. It's a version of some code to extract files from a zip archive, but with everything but the erroring call stripped out:
    create or replace and compile java source named zipunpack as
    package org.bristol.cyps;
    import oracle.sql.BLOB;
    import java.util.zip.*;
    public class ZipUnpack
    public static int unpack(BLOB ziparray[], String filename, BLOB filearray[])
    throws java.sql.SQLException, java.io.IOException
    BLOB file = filearray[0];
    java.io.OutputStream fileout = file.setBinaryStream(0L);
    return 1;
    This is published as follows:
    create or replace function zip_unpack (
    pio_zip in out nocopy blob
    , pi_filename in varchar2
    , pio_file in out nocopy blob
    ) return number as language java
    name 'org.bristol.cyps.ZipUnpack.unpack(oracle.sql.BLOB[], java.lang.String, oracle.sql.BLOB[]) return java.lang.Integer';
    And called like so:
    procedure send_zip_file (
    pi_zip in out nocopy blob
    , pi_filename in varchar2
    ) is
    file blob;
    completed integer;
    begin
    dbms_lob.createtemporary (
    lob_loc => file
    , cache => false
    , dur => dbms_lob.call
    completed := zip_unpack(pi_zip, pi_filename, file);
    if completed > 0 then
    bare_html.print_blob(file);
    else
    htp.print('File "' || pi_filename || '" not found');
    end if;
    end;
    This, as far as I can tell from the documentation, should work. Unfortunately, though, it generates an error:
    ORA-29532: Java call terminated by uncaught Java exception: java.sql.SQLException: Unsupported feature
    The particular line which is causing the error is the "java.io.OutputStream fileout = file.setBinaryStream(0L);" If I remove this, it runs fine. I'm flumoxed as to why this might be causing an "Unsupported feature" exception when it's documented as being supported. Can anyone shed any light?
    Cheers,
    Robert
    Message was edited for more clarity

    Hi,
    It looks like you are not using 10g JDBC. java.sql.Blob.setBinaryStream is a JDBC 3.0 method. In 9iR2 we added support for jdk14 and added stub methods for JDBC 3.0 behavior without fully implementing them. 10gR1 was the first version where the JDBC3.0 methods were fully supported.
    The workaround is to use the Oracle proprietary method oracle.sql.BLOB.getBinaryOutputStream
    Kuassi, http://db360.blogspot.com

  • Error : ORA-06508: PL/SQL: could not find program unit being called

    Hi
    I got surprise issue while testing my Oracle code . Let me explain first the environment detail . Our appliaction built on
    Java/J2EE(Weblogic) and backend is Oracle 11g re2 . While calling from java it call thru different user which have been provide
    synonym and exectue option for corresponding procdure ,
    I created on package EXTRACT_CUSTOMER_INFO_PK which will exract data to text file using UTL_FILE ( direcory , UTL_FILE grant is provided to DB user).
    Now this package has been called from rp_execute_procedure_pr -- Here I is the code
    CREATE OR REPLACE PROCEDURE RP_EXECUTE_PROCEDURE_PR
    i_atlas_job_schedule_fk IN atlas_job_schedule.atlas_job_schedule_pk%TYPE,
    i_job_id IN atlas_job.job_id%TYPE,
    i_parm_value IN atlas_job_schedule.parm_value%TYPE,
    o_status_code OUT NUMBER,
    o_status_mesg OUT VARCHAR2
    IS
    -------Other old code which is not relevent for this issue ----
    --------Other old code which is not relevent for this issue ----
    ----Below code I added ----
    ELSIF l_job_id = 'CUST_EXTRACT' THEN
    EXTRACT_CUSTOMER_INFO_PK.customer_report ( i_parm_value ,
                   o_status_code,
    o_status_mesg ) ;
    -- o_status_code := -99999999;
    --o_status_mesg := 'PARTHA PARTHA PARTHAcess terminated!';
    ELSE
    o_status_code := -20300;
    o_status_mesg := 'Job Id : ' || l_job_id || ' NOT found. Process terminated!';
    END IF;
    update_log_auto
    ajs_rec.atlas_job_schedule_pk ,
    'Processing End Time (GMT): '
    EXCEPTION
    WHEN eProcError THEN
    o_status_code := SQLCODE;
    o_status_mesg := SUBSTR(vMsg ||'-'||SQLERRM, 1, 200);
    WHEN OTHERS THEN
    o_status_code := -20300;
    o_status_mesg := SUBSTR(SQLERRM, 1, 200);
    update_log_auto
    ajs_rec.atlas_job_schedule_pk ,
    'Error : '||SQLERRM||' '
    update_log_auto
    ajs_rec.atlas_job_schedule_pk,
    'Processing End Time (GMT): '
    END RP_EXECUTE_PROCEDURE_PR;
    Now It compiled sucesfully . And while I did SIT then RP_EXECUTE_PROCEDURE_PR run fine and extracted txt file . But while I called it from Java procedure It gives us error like
    Error : ORA-06508: PL/SQL: could not find program unit being called 02-AUG-2012 13:16:51.
    As I told RP_EXECUTE_PROCEDURE_PR old proc and used by other proc , So I first suspect issue is newly added code or may be some grant or synonym ( Although it should not be )
    so I created public synony amd gave execute grant to my pkg to public .
    But it repeat same error .
    I did lot of R&D on my pkg but nothing happen . Finally I remane my new pkg RP_EXTRACT_CUSTOMER_INFO_PK and it works fine
    I need to know what is the RCA for it . I donot think any dependecy issue as renaming pkg is working fine .
    NB my DB user is iATLAS and Javauser is SUDEEP
    Thanks in Advance
    Debashis Mallick

    First of all If i run the main procedure in like below in my Schema it is working fine
    begin
    -- Call the procedure
    rp_execute_procedure_pr(i_atlas_job_schedule_fk => :i_atlas_job_schedule_fk,
    i_job_id => :i_job_id,
    i_parm_value => :i_parm_value,
    o_status_code => :o_status_code,
    o_status_mesg => :o_status_mesg);
    end;
    So thre is no question of parameter .... or Invalid state etc . If it is parameter or Invalid state issue it will give other error.
    Here problem is not syntax issue .
    let me give u more detail regards this issue
    1.. All objects corresponding to procedure all Valid
    2.. If I test on the proc on my schema like above code . It works fine
    3.rp_execute_procedure_pr is a old procudere which called for differner report generartion based on parameter passing . Also as extract_customer_info_pk called with in rp_execute_procedure_pr So there is no question of synonym or privilage issue for new procedure.
    4. Suprising thing is if I rename and recreate package like extract_customer_info_pk _1 or rp_extract_customer_info_pk . Which are exactly same as extract_customer_info_pk and replace those new one with extract_customer_info_pk then it work fine in my java application
    I think I make it clear the issue
    Edited by: debashisora on Aug 3, 2012 5:31 AM
    Edited by: debashisora on Aug 3, 2012 5:40 AM

  • Calling Report from Form Error ORA-06508

    Dear all,
    I want migrate from Fom6i to Oracle Developer Suite 10g (10.1).
    Folder Form = C:\APLIORA\IRS\FORM
    Folder Report = C:\APLIORA\IRS\REPORT
    I have modified file DEFAULT.ENV
    FORMS_PATH=C:\APLIORA\IRS\FORM;C:\APLIORA\IRS\REPORT
    i do not have problem call a form from form.
    but when i call report from form show error ORA-06508 : PL/SQL : could not find program unit being called ; -6508
    my procedure is
    PROCEDURE Call_Report IS
         list_id ParamList;
    BEGIN
    list_id := Get_Parameter_List('input_params');
    IF NOT Id_Null(list_id) THEN
    Destroy_Parameter_List(list_id);
    END IF;
    list_id := Create_Parameter_List('input_params');
    Add_Parameter(list_id,'MAXIMIZE',TEXT_PARAMETER,'YES');
    Add_Parameter(list_id,'ORACLE_SHUTDOWN',TEXT_PARAMETER,'YES');
    RP2RRO.RP2RRO_RUN_PRODUCT(REPORTS,'TESTREPORT.REP',SYNCHRONOUS,RUNTIME,FILESYSTEM,list_id,null);
    END ;
    Do I miss something ?
    Can any one help ?
    Thanks

    Hi,
    Thank you for your replay.
    The problem have solved.
    This my step :
    1. Install Windows XP SP2 and Form 10.1.2.0.2 on new pc.
    2. Install Jinit version 1.3.1.28.
    3. Create report server
    3. Compile form, report and pll
    4. call report from from with this procedure :
    PROCEDURE Call_Report (vFILENAME varchar2) IS
    report_id                Report_Object;
    ReportServerJob VARCHAR2(100);
    vc_rep_status      VARCHAR2(100);
    repsvr                          varchar2(21) := 'myserv';
    userid                         VARCHAR2(100);
    pass                          VARCHAR2(100);
    Host                    VARCHAR2(100);
    BEGIN
    userid          := Get_Application_Property(USERNAME) ;
    pass          := Get_Application_Property(PASSWORD) ;
    Host          := Get_Application_Property(CONNECT_STRING) ;
    report_id:= find_report_object('REPORT');
    SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME,vFILENAME||'.jsp');
    SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,SYNCHRONOUS);
    SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,repsvr);
    ReportServerJob:=run_report_object(report_id);
    vc_rep_status := REPORT_OBJECT_STATUS(ReportServerJob);
    WHILE vc_rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED', null)
    LOOP
    vc_rep_status:=REPORT_OBJECT_STATUS(ReportServerJob);
    END LOOP;
    IF vc_rep_status='FINISHED' THEN
    WEB.SHOW_DOCUMENT('/reports/rwservlet?report='||vFILENAME||'.jsp'||'&userid='||userid||'/'||pass||'@'||Host||'&destype=CACHE&desformat=PDF&paramform=yes','_blank');
    ELSE
    message ('Report failed with error message '|| vc_rep_status);
    END IF;
    END;
    Ok, but i have another strange error. I will post new thread.
    Thank you and regards
    Teguh S

  • Trying to implement a VPD policy but got the following error ORA-20001

    hey good day,
    I'm trying to implement a VPD policy to my application. After I have performed the below task (Label 1) in oracle 10g database. When I'm about to access my application page in ApEx 3.2.1 I got the following error
    ORA-20001: get_dbms_sql_cursor error ORA-28110: policy function or package CHARLES.VPD_PREDICATE has error
    any form of assistance will be greatly appreciated.
    thanks in advance
    Label 1
    USER is "VPD_ADMIN"
    SQL> create or replace context empnum_ctx using set_empnum_ctx_pkg;
    Context created.
    SQL> CREATE OR REPLACE PACKAGE set_empnum_ctx_pkg IS
      2    PROCEDURE set_empnum;
      3  END;
      4  /
    Package created.
    SQL> CREATE OR REPLACE PACKAGE BODY set_empnum_ctx_pkg IS
      2    PROCEDURE set_empnum IS
      3     emp_id NUMBER;
      4    BEGIN
      5     SELECT EMPNUM INTO emp_id FROM CHARLES.INSTRUCTOR
      6     WHERE upper(username) = nvl(v('APP_USER'), USER);
      7     DBMS_SESSION.SET_CONTEXT('empnum_ctx', 'empnum', emp_id);
      8
      9    EXCEPTION
    10      WHEN NO_DATA_FOUND THEN NULL;
    11    END;
    12  END;
    13  /
    Package body created.
    SQL> create or replace package vpd_policy as
      2    function vpd_predicate(object_schema in varchar2 default null, object_name in varchar2 default null)
      3     return varchar2;
      4  end;
      5  /
    Package created.
    SQL> create or replace package body vpd_policy as  function vpd_predicate(
      2   object_schema in varchar2 default null, object_name in varchar2 default null)
      3     return varchar2 as
      4
      5      BEGIN
      6     if (USER = 'ADMIN') and (v('APP_USER') is null) or
      7        (USER = 'MICHAEL.GRAY') and (v('APP_USER') is NULL) then
      8       return '';
      9     else
    10       return '(
    11             exists (
    12                     select  "INSTRUCTOR"."EMPNUM" as "EMPNUM",
    13                             "INSTRUCTOR"."FIRSTNAME" as "FIRSTNAME",
    14                             "INSTRUCTOR"."LASTNAME" as "LASTNAME",
    15                             "LOAD"."COURSEID" as "COURSEID",
    16                             "COURSE"."CREDIT" as "CREDIT",
    17                             "COURSE"."HPW" as "HPW",
    18                             "LOAD"."CAMPID" as "CAMPID",
    19                             "LOAD"."YR" as "YR",
    20                             "INSTRUCTOR"."POS" as "POS",
    21                             "INSTRUCTOR"."USERNAME" as "USERNAME",
    22                             "INSTRUCTOR"."DEPARTMENT_NAME" as "DEPARTMENT_NAME",
    23                             "LOAD"."SEMESTER" as "SEMESTER"
    24                     from    "COURSE" "COURSE",
    25                             "INSTRUCTOR" "INSTRUCTOR",
    26                             "LOAD" "LOAD"
    27                     where   "INSTRUCTOR"."EMPNUM"="LOAD"."EMPNUM"
    28                     and     "LOAD"."COURSEID"="COURSE"."COURSEID"
    29                     and     department_name = (
    30                                     select department_name from departments
    31                                     where upper (assigned_to) = nvl(v(''APP_USER''),USER) )
    32                                     )
    33
    34                     or upper(username) = nvl(v(''APP_USER''), USER)
    35                                                ) ';
    36
    37     END IF;
    38  END vpd_predicate;
    39  END vpd_policy;
    40  /
    Package body created.
    SQL> begin
      2  dbms_rls.add_policy(
      3  object_schema => 'charles',
      4  object_name => 'load',
      5  policy_name => 'Loading Policy',
      6  function_schema => 'charles',
      7  policy_function => 'vpd_predicate',
      8  statement_types => 'select, update, insert, delete');
      9  end;
    10  /
    PL/SQL procedure successfully completed.

    ORA-20001 isn't an Oracle error message it was coded into your application by a developer: Look it up.
    Consider too the following:
    EXCEPTION
       WHEN NO_DATA_FOUND THEN NULL;so if the employee identifier is not found ... is this really what you want? If an employee isn't valid shouldn't you know it?

Maybe you are looking for