How to recognize an exception with JDBC user-defined?

declare
x exception;
begin 
 raise x;
end;
When you call this (or a similar procedure) with JDBC *, I get just a general java.sql.SQLException: ORA-06510: PL/SQL: not supported by the user-defined exception

Is there a way to get more information about the exception?
Then the client code can tell one from the other.


* Spring JDBC actually

Given this pl/sql block, he has nothing else to report, you raise just a generic exception. Try something more like:

begin
   raise_application_error(-20001, 'Something bad happened');
end;

or, if you really want the e

declare
   x exception;
begin
   raise e;
exception
   when e then
   raise_application_error(-20001, 'E happened');
end;

John

Tags: Database

Similar Questions

  • How to share the library with multiple users?

    I have a Mac Pro 2008.  I have four internal hard drives.  One of them is an SSD that is my boot drive.  I have another internal drive that houses my music and movies (2 TB).

    I have four different connections - mine (admin), my wife, my son, my daughter.

    How can I share music on (2 TB) library with other users?  I read to the music folder (shared) - however since the 2 TB is not a boot disc, there is no shared folder.

    You try to share an iTunes library, or the drive contains just music files.

    Other users can see the drive, or simply don't have access to the records.

  • How to use the negation in the user defined rules?

    Hello

    Can you please show me an example using negation in the rule set by the user? I created a rule like below (the rule says that if a patient has a fever problem and not having penicillin hypersensitivity, then recommend medication1):

    INSERT INTO mdsys.semr_myMedicineRB VALUES ('rule1',

    ' (? p RDF: type: Patient) (? p: present? c1) (? c1 RDF: type: fever) (? c2 RDF: type: Penicillin_Hypersensitivity)',

    "(NOT_EXISTS (p: present c2))',

    ' (? p: recommendation: medication1)',

    SEM_ALIASES (SEM_ALIAS (",'http://www.example/medicine#')));

    The rule correctly applied in the modules. However, I cannot move to the phase of creation entailment and got errors:

    ORA-29532: Java call terminated by eception Java exception: java.sql.SQLException: parameter IN or OUT to missing index: 1

    ORA-06512: at the 'MDSYS. SDO_SEM_INF_INTERNAL', line 16453

    ORA-06512: at the 'MDSYS. SDO_SEM_INFERENCE', line 302

    ORA-06512: at the 'MDSYS. SDO_SEM_INFERENCE', line 352

    ORA-06512: at the 'MDSYS. RDF_APIS', line 118

    ORA-06512: at line 2

    29532 00000 - "Java call terminated by eception Java exception: %s."

    * Cause: A mistake or a Java exception has been reported and could not be

    solved by Java code.

    * Action: Modify Java code, if this behavior is not expected.

    According to the post primitives(noValue,remove) integrated for user defined rules, it seems that negation is not supported in rules defined by the user. Can you please advice how to implement the negation in the rules defined by the user?  Thank you very much in advance.

    Hong

    Salvation Hong,

    Negation is not supported in rules defined by the user. If you need a work-around, please follow the suggestion in the post you referenced.

    If you use Oracle Database Release 12 c, user-defined inference can certainly manage negation.

    It will be useful,

    Zhe Wu

  • CS5.1: How to create a new swatch palette 'User Defined'.

    CS5.1: Sub window 'Libraries of nuances', 'User Defined' is grayed out so I can't access my palette personal swatch. I have the data to recreate it, but can't find a "new palette" selection.

    Thanks Monika. Your answer has led me to what seems to be a success. I opened an existing file that had my palette of integrated shade inside, and then selected "Save Swatch Library as HAVE", giving it the name of my swatch palette. This palette will now appear under "User Defined".

  • How do you share themes with all users?

    I have a few users using the same pc. I have a user profile that has downloaded Windows 7 additional topics, but when you go to control panel, desktop and customizations from another user, all new themes aren't there. I want to keep things clean and tidy and to minimize the disk space. Does take each user to download Windows 7 themes to their profile or can there be a central location for all users to choose what topics they want to apply and change? If yes how to make them accessible from the Control Panel, desktop and personalization option?

    http://Windows.Microsoft.com/en-us/Windows/downloads/personalize

    Hi Humble1,

    Download the .themepack file and open it with WinRar or 7-Zip. Extract the contents of a folder (accessible by all users)
    Open the theme file and update the paths to the resources accordingly. (By default, the desktop background and other parameters point to %UserProfile%)

    Save the theme file and place it in C:\Windows\Resources\Themes. Ramesh Srinivasan, Microsoft MVP [Windows Desktop Experience]

  • How to share files & folders with other users on the same PC

    We have 2 users on our PC I can find how to 'share' on a network, but not on the same PC (I'm a user 'low tech') all the headings of 'aid' seemed to refer to a network of more than 1 PC

    Files/folders that you want to share between users on the same machine should be placed in the Public, C:\Users\Public directory. That is what concerns the Public directory. MS - MVP - Elephant Boy computers - don't panic!

  • How to solve a problem with my user account in Windows 7

    I recently downloaded several drivers for Windows XP and I installed one or more of these factors so that I could transfer to a USB key to install on an XP laptop. I think that this may have damaged my user accounts. When I click on the images and music files, has more listed files. In addition, a second HARD drive installed on my Windows 7 CPU is no longer accessible after that I tried to fix. 2nd HARD drive was accessible in Windows Explorer, but my music application (iTunes) could not read the music library file (content in 1 disk HARD music folder) or he could access the music files and media.

    After doing some research on this forum, I've decided that I have can I have inadvertently installed a trogan horse or a virus who disguised himself as a windows driver. I was downloading several drivers for an old laptop which comes, I reinstalled Windows XP and some I THINK drivers came from unofficial or Microsoft Web sites. I found under the credentials manager that a new profile has been created the day this problem is product called "virtualapp/didlogical" I'm obviously very concerned by this and not be able to access my music and photo files in my user profile. I can access the files (music, photos) if I do a search, but they are more related to my user account (i.e. the folder to see the music and pictures empty).
    Here's what I did: 1) I have done a full using Microsoft Security Essentials scan and the latest version of McAfee and no problems were detected, 2) I tried to change the permissions on the 2nd HARD drive and I don't even now to access the disk in Windows Explorer, 3) that I deleted the account virtualapp/didlogical in the credentials manager (4) I changed the password for my user account, which is default and administrator privileges.
    In my list of user account, there are 4 accounts or groups: authenticated users (I don't remember why it's here), SYSTEM ("'"), (MyUserName\Administrators) administrators, users (MyUserName\Users). I am running Windows 7 Home Premium SP1.
    (My questions are 1) what is the best way to correct the user account so that my music and photos are in the user accounts, files and 2) what happens if another remedy would be the community suggests to determine if I have a horse trogan or installed virus.
    Before you remove user or group accounts, or any other changes, I thought I'd see if anyone else has had this problem and what should I do if all the remedies have been used to solve problems.
    Any guidance or advice would be most appreciated. Thanks in advance!

    Hello

    Thanks for posting to the wealth of information you did. To answer your questions, I recommend a person as follows:

    (1) create a new user account, set up exactly as you wish. Then compare it to the existing and corrupt user account, the user account corrupted attachment according to the article: http://windows.microsoft.com/en-us/windows7/Fix-a-corrupted-user-profile.

    (2) for the removal of malicious software that is not catch an antivirus application, I recommend two malware scanners:

    Malwarebytes': http://www.softpedia.com/get/Antivirus/Malwarebytes-Anti-Malware.shtml ;  and,

    SuperAntiSpyware: http://download.cnet.com/SuperAntiSpyware-Free-Edition/3000-8022_4-10523889.html (use the link Direct download only).

    Followed by two "second opinions" on the antivirus application (both are online scanners):

    ESET Online Scanner: http://www.eset.com/us/online-scanner/ ;  and,

    TrendMicro: http://housecall.trendmicro.com/us/ .

    Finally, if you think that there is participation of any browser that avast: http://download.cnet.com/Avast-Browser-Cleanup/3000-2144_4-75872295.html (only use the Direct download link).

    These may be "canned" responses, but are they the measures legitimate, I take a poster through. Post your results here and let me know how you fare.

    Kind regards

    BearPup

  • How to get emails hidden with the user names and passwords

    Husband hiding accounts email and user name and passwords for online dating sites

    Crisnray1994 said

    Husband hiding accounts email and user name and passwords for online dating sites

    Hello

    We hope that you do well. I'm sorry, that would be a violation of the privacy policy of Mozilla that we work hard to maintain.

    I would say to him talk about it perhaps?

    Hope you will be able to get to the bottom of this somehow.

    -Michael

  • Fail validation in a table with the "user-defined Exception.

    Version 4.1.1.00.23

    Hello

    I get the above error on a tabular presentation (generated by the Wizard) when a Validation error is displayed.

    I have found two references to this question without a solution though:

    https://community.Oracle.com/message/10481160#10481160

    and

    https://community.Oracle.com/thread/2370356

    In the first link he refers to a MRU missing on the page. There is a MRU on the page and I deleted the Condition of when you press button-> SAVE no condition.

    The second link refers to a popup LOV KEY I have and it's query in function. There are too many files for a Standard LOV.

    The Validation error is displayed, but the shape of table is not displayed and the error message.

    I have 6 filters on the page and they all LOV Standard default values are defined for each element. This is also confirmed in the window Session.

    This is the screenshot of Validation:

    report_error1.png

    This is the capture of the screen Session window:

    report_error2.png

    If anyone can help with this?

    Can what information I provide?

    Thank you

    Joe

    Hello

    I created an example on apex.oracle.com

    Workspace: joer

    United Nations: dev

    PW: dev

    Request: operating 82118 point Validation error

    BUT there is another problem!  The page does not work!  I get:

    Failed to parse the SQL query:

    ORA-01445: cannot select ROWID, or sample, join without table views preserved key

    The WORK_ITEMS table has a primary key, INSERT trigger for the sequence.

    All database fields are referenced to the table and I use not matter where ROWID.

    Other than the page is defined even in my environment.

    Can what additional information I give?

    Thank you

    Joe

  • How to connect to Discoverer with apllication user?

    Hello world

    I have Oracle E-Business Suite and report in Oracle discoverer Desktop 4.1
    Currently, I create the database user so that the user can access report discoverer.

    The user allows the authentication of user connection of the oracle E-Business Suite, then we will have a SSO?

    Hello

    When the EUL is created, you can specify if a mode of database or application EUL is created. If you create a new application EUL so you can connect to Discoverer using the e - BS username and the password. You don't need SSO.

    If you have a database of EUL mode and want him to convert to a mode of EUL apps, you must create a new mode EUL apps and then export all in the mode of EUL database and import mode apps EUL.

    You cannot connect to a mode of EUL apps using 4.1.37, you patch up to a later version to run.

    Rod West

  • Hide a defined system Exception to a user-defined exception!

    Hi gurus!

    I have a problem with throwing exception in PL/SQL. I want to hide an exception-2292 (foreign key violation) with my own exceptions defined by the user. I tried the following code:

    < pre >
    CREATING a PACKAGE test
    AS
    my_own_exception EXCEPTION;
    PRAGMA EXCEPTION_INIT (my_own_exception,-20002);
    ...
    some_other_code
    END;

    Test to CREATE THE PACKAGE BODY
    AS
    PROCEDURE some_procedure
    AS
    BEGIN
    remove from table_x; -This statement triggers the exception-2292
    EXCEPTION
    WHEN my_own_exception THEN
    raise_application_error (-20002, "My own error message");
    WHILE OTHERS THEN
    IF (sqlcode =-2292) THEN
    RAISE my_own_exception;
    END IF;
    END;
    < / pre >

    My problem is that the error message that is displayed is not my own, but there
    < pre >
    ORA - 20002:ORA - 06510... ORA-02292...
    < / pre >

    The error message should appear is
    < pre >
    ORA-20002: my error message
    < / pre >

    Help, please!

    Concerning

    I think that you will just take the exception-2292

    EXCEPTION
    WHEN "-2292 exception" CAN
    RAISE_APPLICATION_ERROR ("-20002, ' my own error message");
    END;

  • How to change name of the listener (user Defined) for OEM

    Hi all

    We have created a different listener as auditeur1, now when we start ORacle Enterprise manager, it is show theerror

    Earphone

    Down status
    Home eSVCS-DB-PRD1
    Port 1521
    Name LISTENER
    /Oracle/product/10.2.0 oracle Home
    Location /oracle/product/10.2.0/network/admin
    TNS-12541 details: Listener TNS:no



    Connection to the Instance of the agent

    State has failed
    Details ORA-12541: Listener TNS:no (DBD ERROR: OCIServerAttach)


    Please let me know how to apply the new Manager Oracle Enterprize listener.
    We use the oracle database 10.2.0.3 on SunOS (sun4v sparc SUNW, SPARC-Enterprise-T5220)


    Thank you
    Ankit.

    Send me the contents of this file.

    Check in the file emoms.properties

    and also check in the targets.xml file

    Published by: CKPT December 27, 2010 09:54

  • How to read my ref cursor return user defined cursor type

    Hello
    I have the types defined as follows:
    TYPE MY_RECORD IS RECORD (
    COL1 TABLE1.COL1%TYPE,
    COL2 TABLE1.COL2%TYPE
       );
    
    TYPE MY_CURSOR IS REF CURSOR
    RETURN MY_RECORD;
    It is used as a return type in a stored procedure.
    I have a pl/sql block, where I make a call to MS that returns this cursor.
    How to read individual values for SP?
    SQL> create or replace package pkg
    as
       type my_record is record (col1 emp.empno%type, col2 emp.ename%type);
    
       type my_cursor is ref cursor
          return my_record;
    
       procedure p (cur out my_cursor);
    end pkg;
    /
    Package created.
    
    SQL> create or replace package body pkg
    as
       procedure p (cur out my_cursor)
       as
       begin
          open cur for
             select   empno, ename
               from   emp
              where   rownum <= 2;
       end p;
    end pkg;
    /
    Package body created.
    
    SQL> declare
       cur     pkg.my_cursor;
       e_rec   pkg.my_record;
    begin
       pkg.p (cur);
    
       loop
          fetch cur into   e_rec;
    
          exit when cur%notfound;
          dbms_output.put ('Empno: ' || e_rec.col1);
          dbms_output.put_line ('; Ename: ' || e_rec.col2);
       end loop;
    
       close cur;
    end;
    /
    Empno: 7369; Ename: SMITH
    Empno: 7499; Ename: ALLEN
    PL/SQL procedure successfully completed.
    
  • Using java user-defined aggregate function

    Hello

    I'm trying to implement a with Java user-defined aggregate function.

    Here's the Code Javaclass:

    Import Java.util;
    Oracle.sql import. *;
    import java.sql. *;
    import Java.Math.BigDecimal;
    Oracle import. CartridgeServices.*;

    stored the context type

    public class StoredCtx_SecMax
    {
    private BigDecimal b_max;
    private BigDecimal b_secmax;

    public StoredCtx_SecMax()
    {
    b_max = new BigDecimal (0);
    b_secmax = new BigDecimal (0);
    }

    public void SchreibeMax (entry BigDecimal)
    {
    b_max = entry;
    }

    public void SchreibeSecMax (entry BigDecimal)
    {
    b_secmax = entry;
    }

    public BigDecimal LeseMax()
    {
    Return b_max;
    }

    public BigDecimal LeseSecMax()
    {
    Return b_secmax;
    }
    }

    implementation type

    / public class SecondMax_j implements SQLData
    {
    BigDecimal private key;

    Ultimate SUCCESS of static BigDecimal = new BigDecimal (0);
    Final static BigDecimal ERROR = new BigDecimal (1);


    Implement the SQLData interface.

    String sql_type;
    public String getSQLTypeName() throws SQLException
    {
    Return sql_type;
    }

    ' Public Sub readSQL (SQLInput stream, string typeName) throws SQLException
    {
    sql_type = typeName;
    key = stream.readBigDecimal ();
    }

    Public Sub writeSQL (SQLOutput stream) throws SQLException
    {
    stream.writeBigDecimal (key);
    }


    methods of the type that implements ODCITable interface

    public static BigDecimal ODCIAggregateInitialize (oracle.sql.STRUCT [] sctx)
    throws SQLException
    {
    Connection Conn = DriverManager.getConnection("jdbc:default:connection:");

    create a stored environment and store the result set in it
    StoredCtx_SecMax ctx = new StoredCtx_SecMax();

    context of registry stored with cartridge services
    Touch int;
    try {}
    key = ContextManager.setContext (ctx);
    } catch {} (EC CountException)
    error return;
    }

    Create an instance of StockPivotImpl and store the key of
    Object [] impAttr = new Object [1];
    impAttr [0] = new BigDecimal (key);
    StructDescriptor sd = new StructDescriptor ("SECONDMAX_J", conn);
    SCTX [0] = new STRUCT(sd,conn,impAttr);

    return a SUCCESS;
    }

    public BigDecimal ODCIAggregateIterate (BigDecimal input)
    throws SQLException
    {
    retrieve the context stored with the key
    CTX StoredCtx_SecMax;
    try {}
    CTX = (StoredCtx_SecMax) ContextManager.GetContext (Key.intValue ());
    } catch (InvalidKeyException ik) {}
    error return;
    }

    BigDecimal b_max;
    BigDecimal b_secmax;

    b_max = ctx. LeseMax();
    b_secmax = ctx. LeseSecMax();

    If (eingabe.compareTo (b_max) == 1)
    {
    CTX. SchreibeSecMax (b_max);
    CTX. SchreibeMax (input);
    }
    on the other
    {
    If (eingabe.compareTo (b_secmax) == 1)
    {
    CTX. SchreibeSecMax (input);
    }
    }

    return a SUCCESS;
    }

    public BigDecimal ODCIAggregateTerminate (double [] returnValue, int flags) throws SQLException {}

    retrieve the context stored with the key
    CTX StoredCtx_SecMax;
    try {}
    CTX = (StoredCtx_SecMax) ContextManager.clearContext (Key.intValue ());
    } catch (InvalidKeyException ik) {}
    error return;
    }

    returnValue [0] = ctx. LeseSecMax () .doubleValue ();

    CTX = null;

    return a SUCCESS;
    }


    public BigDecimal ODCIAggregateMerge (oracle.sql.STRUCT ctx2) throws SQLException {}


    return a SUCCESS;
    }
    }


    To implement this in the database, I use the following script:

    CREATE OR REPLACE TYPE IMPROG. SECONDMAX_J as object

    (
    INTEGER key,

    public static function ODCIAggregateInitialize (sctx IN OUT SECONDMAX_J)

    Return number
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal return from SecondMax_j.ODCIAggregateInitialize (oracle.sql.STRUCT []).
    ,



    Member ODCIAggregateIterate (self IN OUT SECONDMAX_J function,

    Number return value)
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal SecondMax_j.ODCIAggregateIterate return (Java.Math.BigDecimal).
    ,



    Member ODCIAggregateTerminate (self IN SECONDMAX_J function,

    Return returnValue NUMBER, flags in number number)
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal return of SecondMax_j.ODCIAggregateTerminate (double [], int).
    ,



    Member ODCIAggregateMerge (self IN OUT SECONDMAX_J function,

    CTX2 IN SECONDMAX_J) return number
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal SecondMax_j.ODCIAggregateMerge return (oracle.sql.STRUCT)".
    );
    /

    CREATE OR REPLACE FUNCTION F_SECONDMAX_J (NUMBER value) RETURN NUMBER

    PARALLEL_ENABLE

    AGGREGATION to the HELP of SecondMax_j;
    /



    When I now use the F_SECONDMAX_J function.

    "(Columnname) select F_SECONDMAX_J from Tablename t;

    It works perfectly and shows me the right result.

    Then I tried to implement the fusion part as follows:

    public BigDecimal ODCIAggregateMerge (oracle.sql.STRUCT ctx2) throws SQLException {}

    BigDecimal Key2 = null;

    BigDecimal ctx_max = null;
    BigDecimal ctx_secmax = null;

    BigDecimal ctx2_max = null;
    BigDecimal ctx2_secmax = null;

    retrieve the context stored with the key
    StoredCtx_SecMax ctx = null;
    try {}
    CTX = (StoredCtx_SecMax) ContextManager.GetContext (Key.intValue ());
    } catch (Exception e) {}

    }

    Object [] impAttr = ctx2.getAttributes ();

    Key2 = (BigDecimal) impAttr [0];

    retrieve the second context stored using the key2
    StoredCtx_SecMax ctx_sec = null;
    try {}
    ctx_sec = (StoredCtx_SecMax) ContextManager.GetContext (key2.intValue ());
    } catch (Exception e) {}

    }

    ctx_max = ctx. LeseMax();
    ctx_secmax = ctx. LeseSecMax();

    ctx2_max = ctx_sec. LeseMax();
    ctx2_secmax = ctx_sec. LeseSecMax();

    If (ctx2_max.compareTo (ctx_max) == 1)
    {
    If (ctx2_secmax.compareTo (ctx_secmax) == 1)
    {
    CTX. SchreibeSecMax (ctx2_secmax);
    }
    on the other
    {
    CTX. SchreibeSecMax (ctx_max);
    }
    CTX. SchreibeMax (ctx2_max);
    }
    on the other
    {
    If (ctx2_max.compareTo (ctx_secmax) == 1)
    {
    CTX. SchreibeSecMax (ctx2_max);
    }
    }

    return a SUCCESS;
    }

    When I now try the function

    "Select / * + parallel (t 4) * / F_SECONDMAX_J (Columnname) of Tablename t;

    I always get a pointer NULL-error because the variable key2 is always 0 and therefore the functions LeseMax() and LeseSecMax()
    in the second context 'ctx_sec' produce this error NULL pointer.

    To me it seems that each parallel process is the construction of an additional class for himself, which is not available are my main process.

    My question is now how it is possible to access the context of stored of the parallel process, so that I can combine the results.

    Thank you very much

    Josef

    Hi Josef,

    just guess that I've never implemented with java user-defined aggregate functions or support parallel execution:

    Maybe you have to implement ODCIAggregateWrapContext?

    + Application of ODCIAggregateWrapContext is optional. It should be implemented only when the external memory is used to hold the aggregative, context and the user-defined aggregate is evaluated in parallel (which is, stated as PARALLEL_ENABLE). If the user-defined aggregate is not evaluated in parallel, ODCIAggregateWrapContext is not necessary. +
    [http://docs.oracle.com/cd/B12037_01/appdev.101/b10800/dciaggfns.htm#i1004974]

    Report it to progress and success.

    Good luck
    Rainer Stenzel

  • Task to the mapping of object status: is it possible to have user-defined status?

    Hi guru.

    'Task of object state Mapping' tab for the definition of the process allows you to set the "status of the object' to 'status '.

    'Status of the object' contains values defined on "Definition of the State" for defined object "resource". It is possible to extend this list by adding user-defined status. But the allocation of these statutes (for example, 'view data name updated') for status (say, 'C', finished) it causes a corresponding Bundle error is found.

    How is it possible to use the user defined the statutes?

    Hello

    These statutes are pre-defined and shipped by the IOM.

    You cannot change C-> etc. put into service.

    ~ J

Maybe you are looking for