Handling EXCEPTION in SQL query itself

Hi friends,
I have situation like the following:
SELECT CASE WHEN ('1') > 0 THEN 'Y'
ELSE 'N'
END
FROM dual;
For this query, Oracle returns 'Y'. That's OK. Somtimes instead of '1' some string may come ('1a' or 'gf'). In such cases Oracle returns 'invalid number' exception. As per my requirement, in such cases, 'N' should be returned.
Is it possible to perform this in SQL (without going to PLSQL)?
Thanks in advance.

"case-when" statements are evaluated in order.
so you must do something like this:
SELECT
CASE WHEN <is not number>THEN 'N'
CASE WHEN <is greater than 0>THEN 'Y'
Now "<is greater than 0>" will always have number for input, can't get "not number" error there.
See this thread:
Re: regular expression: integer is between N..M
Edited by: CharlesRoos on May 27, 2010 5:03 AM

Similar Messages

  • To handle exception in insert query

    Hi ,
    I am trying it insert certain records from another table A to temp table B, while doing insert i am having exception of unique constraint in table B how can i check which record is throwing exception while inserting in table A
    for eg:
    insert into A
    select * from B;
    i need to handle exception in which record of B i am getting unique constraint error

    Hi,
    If you add an error logging clause (with keywords LOG ERRORS), then you can insert a row into another table for each row that can't be inserted according to your INSERT statement.
    To query table A to see which ids already exist in table B, you can say
    SELECT  *
    FROM    a
    WHERE   a_id  IN (
                          SELECT  b_id
                          FROM    b
    where b.b_id is the unique key in table b, and a.a_id is the value you're truing to insert into that column.
    If you just want to skip the insert when a matching row already exists, then use MERGE instead of INSERT.

  • Handling DST in SQL Query for UCCX Custom Report

    We wrote all custom reports for one of the call centers using our UCCX deployment.  One problem we see we will hit in the future is DST.  We suggested they use UTC but they wanted to see the call data based off of EST timezone.  Right now we are okay because we use -5 to get the correct data but come March we are wondering how to address the issue.  What options do we have?  How are other people handling DST with the SQL queries for custom reporting?  I see that the HR client will determine this based off of the local computer time then gives you the option to use UTC.  We have all of our queries in an Excel document that the customer just needs to open and select Refresh All to update their data.
    Thanks

    "case-when" statements are evaluated in order.
    so you must do something like this:
    SELECT
    CASE WHEN <is not number>THEN 'N'
    CASE WHEN <is greater than 0>THEN 'Y'
    Now "<is greater than 0>" will always have number for input, can't get "not number" error there.
    See this thread:
    Re: regular expression: integer is between N..M
    Edited by: CharlesRoos on May 27, 2010 5:03 AM

  • Set the column length in an sql query

    Hi,
    Is there a way to set the column length in a query without using sqlplus commands like row size and format column.
    I'd like to do it just from the sql query itself.
    select 'this is a test' from dual; Can I define the width of this column in the select statement
    Cheers.

    Use RPAD,
    SQL> WITH T
      2       AS (SELECT 'this is test' str FROM DUAL
      3           UNION ALL
      4           SELECT 'this is a long test' FROM DUAL
      5           UNION ALL
      6           SELECT 'this is a long long long long test' FROM DUAL)
      7  SELECT RPAD ( str, 20) str,LENGTH( RPAD ( str, 20)) len
      8    FROM T;
    STR                         LEN
    this is test                 20
    this is a long test          20
    this is a long long          20
    SQL> G.

  • Can we handle exceptions for the expressions in select query?

    Hi all,
    Can we handle exceptions for the expressions in select query.
    I created a view, there I am extracting a substring from a character data and expected that as a number.
    For example consider the following query.
    SQL> select to_number( substr('r01',2,2) ) from dual;
    TO_NUMBER(SUBSTR('R01',2,2))
    1
    Here we got the value as "1".
    Consider the following query.
    SQL> select to_number( substr('rr1',2,2) ) from dual;
    select to_number( substr('rr1',2,2) ) from dual
    ORA-01722: invalid number
    For this I got error. Because the substr returns "r1" which is expected to be as number. So it returns "Invalid number".
    So, without using procedures or functions can we handle these type of exceptions?
    I am using Oracle 10 G.
    Thanks in advance.
    Thank you,
    Regards,
    Gowtham Sen.

    SQL> select decode(ltrim(rtrim(translate(substr('r21', 2, 2), '0123456789', ' ' ), ' '), ' '), null, (substr('r21', 2, 2)), null) from dual;
    DE
    21
    SQL> ed a
    SQL> select decode(ltrim(rtrim(translate(substr('rr1', 2, 2), '0123456789', ' ' ), ' '), ' '), null, (substr('rr1', 2, 2)), null) from dual;
    D
    -

  • Show the SQL query on the report itself

    I'd like to show the entire SQL query in print at the end of a report, say in the Report Footer section so that the user could review it let me know what edits are needed to meet their needs.  Thanks

    Since the query itself doesn't really change (except for parameter values passed to selection criteria), you can just open the Show SQL Query and paste it into a text box.
    Beyond that, there isn't a way to add via a "Special Field".
    HTH,
    Jason

  • Error in SQL Query The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. for the query

    hi Experts,
    while running SQL Query i am getting an error as
    The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. for the query
    select  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price ,
    T2.LineText
    from OQUT T0  INNER JOIN QUT1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN
    QUT10 T2 ON T1.DocEntry = T2.DocEntry where T1.DocEntry='590'
    group by  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price
    ,T2.LineText
    how to resolve the issue

    Dear Meghanath,
    Please use the following query, Hope your purpose will serve.
    select  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price ,
    CAST(T2.LineText as nvarchar (MAX))[LineText]
    from OQUT T0  INNER JOIN QUT1 T1 ON T0.DocEntry = T1.DocEntry LEFT OUTER JOIN
    QUT10 T2 ON T1.DocEntry = T2.DocEntry --where T1.DocEntry='590'
    group by  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price
    ,CAST(T2.LineText as nvarchar (MAX))
    Regards,
    Amit

  • Regarding Exceptions of a SQL query

    Hi,
    We have a problem regarding the sql query shown below:
    select max(column1) into var1
    from table1
    where column2 = 100;
    We don't have any rows in the table1 but we are not getting the "NO data exception" while executing the query in a procedure.
    If we modify the query to
    select column1 into var1
    from table1
    where column2 = 100;
    then 'No data found' exception is raised.
    Can you please let us the reason behind this.
    Thanks in advance.
    Lakshmi

    Cut from Oracle documentation
    If a query with an aggregate function returns no rows or only rows with nulls for the argument to the aggregate function, the aggregate function returns null.
    AVG
    COUNT
    GROUPING
    MAX
    MIN
    STDDEV
    Aggregate function don't return 'No datafound Exception" I believe....Correcte me if i am Worng
    Ashok

  • Handling property name with spaces in SQL query

    Hello,
    I have some JSON that looks like this:
        "SystemId": "112234",
        "Parameter": {
            "Total Hours": [
                    "timestamp": "2015-03-15T15:20:00Z",
                    "itemValue": "0"
                    "timestamp": "2015-03-15T15:15:00Z",
                    "itemValue": "296"
    ..and am having trouble with the space in the "Total Hours" property name.  When executing a SQL query, I have tried to reference it as ["Total Hours"], [Total Hours], and "Total Hours", but none of these works.  I
    have also reviewed the "Querying DocumentDB" and "DocumentDB SQL Query Language" documents, but am unclear on how to escape this space.  As this is valid JSON, I would expect to be able to handle it via DocumentDB SQL query, but am
    not certain what I am missing.  
    Thanks for your help.
    Please remember to mark replies as answers if they help you.

    Given that the property with the name with the space contains an array, I attempted to query using:
     SELECT * FROM c WHERE c.Parameter.c["Total Hours"][0].timestamp = "2015-03-15T15:15:00Z" and a few other permutations, but no luck.  Did I misunderstand?
    Please remember to mark replies as answers if they help you.

  • SQL query throwing Exception.

    Hi,
    i am facing a problem while using the date as search criteria. In the JDO class the field type is of java.util.Date. The search is working in the local environment whose local date settings as M/d/YYYY(windows 2003 , english version).The search is not working in the chines OS environment , where the local date setting is YYYY-M-d. In the chinese enviroment , if we alter the session NLS settings in toad, we could able to execute the query.
    we are using kodo-2.5.8
    SELECT t0.JDO_ID, t0.JDO_CLASS, t0.BAD_NAMES, t0.CONCAT_NAME, t0.DDATE, t0.FIRST_NAME, t0.LAST_NAME, t0.MAX_SCN, t0.NAME,
    t0.NATURALID, t0.PARTYID, t0.PHONE, t0.ROLE FROM PARTY_VBO t0 WHERE (t0.ROLE LIKE '%ICR%' AND t0.DDATE = '17-APR-1974' AND ROWNUM <= 25) AND
    t0.JDO_CLASS = 2 ORDER BY t0.PARTYID ASC)
    This Query is throwing ORA-01843.
    From where the session opened by the java in oracle will take the data format?

    Plaese help.
    One of my sql query is throwing exception during
    execution. I do not know which one (there are several
    of them). Is there a way to display or extract the
    last query from SQLException class.
    Any help will be highly appreciated.
    Thanks,
    Indrasish.No there is not. You should do some debugging, such as logging something like: "Executing query: SELECT blahblahblah" - then execute the query, then log something like: "Query completed". Then find in your log which one didn't complete.

  • How to handle large result set of a SQL query

    Hi,
    I have a question about how to handle large result set of a SQL query.
    My query returns more than a million records. However, the Query Template has a "row count" parameter. If I don't specify it, it by default returns only 100 lines of records in the query result. If I specify it, then it's limited to a specific number.
    Is there any way to get around of this row count issue? I don't want any restriction on the number of records returned by a query.
    Thanks a lot!

    No human can manage that much data...in a grid, a chart, or a direct-connected link to the brain. 
    What you want to implement (much like other customers with similar requirements) is a drill-in and filtering model that helps the user identify and zoom in on data of relevance, not forcing them to scroll through thousands or millions of records.
    You can also use a time-based paging model so that you only deal with a time "slice" at one request (e.g. an hour, day, etc...) and provide a scrolling window.  This is commonly how large datasets are also dealt with in applications.
    I would suggest describing your application in more detail, and we can offer design recommendations and ideas.
    - Rick

  • SQL Query and Exception ORA-01722

    Hi,
    I have a table called t_lookup which has three columns Lookup_Value, Description and Lookup_Type all of them are varchar2 type. If I execute the below query, its working fine
    SELECT *
    FROM (SELECT Lookup_Value
    *,To_Number(Description) Dd*
    FROM t_Lookup
    WHERE Lookup_Type = 'CALENDAR') Tab ;
    Here is the result
    Lookup_Value .............. Dd
    January....................... 1
    February..................... 2
    March......................... 3
    April........................... 4
    May........................... 5
    June.......................... 6
    July........................... 7
    August....................... 8
    September................... 9
    October...................... 10
    November................... 11
    December................... 12
    But when i execute
    SELECT *
    FROM (SELECT Lookup_Value
    *,To_Number(Description) Dd*
    FROM t_Lookup
    WHERE Lookup_Type = 'CALENDAR') Tab
    AND Dd = 9;
    then it is throwing ORA exception
    ORA-01722: invalid number
    Can any one help me on this in order to understand the root cause of this problem? Oracle server I am using is "Oracle9i Release 9.2.0.8.0" .
    Thanks

    I'm assuming that it is intended that certain descriptions will have non-numeric data in them, right?
    Assuming that is the case, the success or failure of the query will depend on how the optimizer happens to choose to execute your query. If it happens to run the TO_NUMBER function before it filters out a row with non-numeric data, you'll get an error. If it happens to run the TO_NUMBER after filtering out all the rows with non-numeric data, the query will be successful. Given that query plans are subject to change, particularly when you eventually upgrade, you probably don't want to just find a SQL query that works, you'll need to ensure that either the query plan never changes or that the query is formulated in such a way that it will never fail.
    My first thought would be whether you really need to store numeric data in a VARCHAR2 field in the first place. I'm guessing this is some sort of generic lookup table (which cause a raft of issues, this being one). Can you at least store string, date, and number data in separate columns?
    Barring that, can you create your own PL/SQL function that converts a string to a number and catches the exception?
    CREATE OR REPLACE FUNCTION my_to_number( p_arg IN varchar2 )
      RETURN NUMBER
    IS
      l_num NUMBER;
    BEGIN
      l_num := to_number( p_arg );
      RETURN l_num;
    EXCEPTION
      WHEN others THEN
        RETURN NULL;
    END;That will ensure that the query will be successful regardless of the plan. Note that you would probably want to catch just the ORA-01722 error, not OTHERS, in your real code-- this is just a sample.
    Barring that, you'll need to do something to enforce stability in the query plan. A stored outline that forces this query to use the query plan that doesn't generate an error.
    Justin

  • How to get row number in the fetch row itself in Sql Query ?

    Hi,
    i am fetching some rows from a sql query . Is there any way to get row number as well in each row while all rows are fetched ?
    like this :
    RowNum data1 data2
    1 abc ere
    2 bnh ioi

    Hello
    Ofcourse you can get the rownum inside a query, just keep in mind that the rownum is the number of order in which the records were fetched from the table, so if you do an order by, the rownum will not be sequential, unless you query the information in a subquery first.
    SELECT rown, col1, col1
    FROM table
    Or
    SELECT rownum, col1, col2
    FROM (SELECT col_1, col_2 FROM table ORDER BY col1)
    Regards
    Johan

  • Handling sql query in jsp while extracing records from 3 tables

    hi to one and all,
    i want to implement the sql query given below in jsp in execute query statement . the query is working in sql but not when implemented using jsp. please help me in resolving this.
    Query
    SELECT e.Department , e.ETitle , s.basic , s.da, c.address1 , c.address2 from Employee e , Salary s , Contactdetails1 c where e.id = s.id and e.id =c.id

    It would help if you gave us a little more info to go on like;
    a) post your code
    b) post the error message the compiler is giving you

  • Handling  sql query in java where i'm extracting reords from 3 tables

    hi to one and all,
    i want to implement the sql query given below in jsp in execute query statement . the query is working in sql but not when implemented using jsp. please help me in resolving this.
    Query
    SELECT e.Department , e.ETitle , s.basic , s.da, c.address1 , c.address2 from Employee e , Salary s , Contactdetails1 c where e.id = s.id and e.id =c.id

    It would help if you gave us a little more info to go on like;
    a) post your code
    b) post the error message the compiler is giving you

Maybe you are looking for

  • How do I save my flash animation as a .mov or any youtube acceptable format?

    I would like to upload my animation to youtube, however youtube accepts certain selective file formats. I cannot export my animation with the selective file formats: .MOV .MPEG4 MP4 .AVI .WMV .MPEGPS .FLV 3GPP WebM Can someone please tell my how to s

  • Acrobat 9 Pro - Add watermark to digitally signed pdf?

    Greetings, Is there a way to add a watermark to a digitally signed pdf using Acrobat 9 Pro? I was able to do this using Acrobat 8, but Acrobat 9 restricts this change. Invalidating the signatures is not an issue as the watermarked copies would be con

  • Trouble connecting Apple TV to Sony TV (KV-24FV10)

    I am having some problems connecting my new Apple TV to my Sony TV (model: KV-24FV10). I used cables that previously was connected to my DVD but when I use them on the ATV the picture is black and white. I plugged the cables in so RED=RED, WHITE=BLUE

  • Wont recieve texts/ calls....screen freezes up

    So, in the past 6 weeks I have received 3 replacements thunderbolts  from Verizon because the ones I have wont receive calls or texts...does any one else have this issue...I am also having issues with the screen freezing up. I am truly hating this ph

  • Laserjet P3005dn network configuration options missing from I/O menu

    I acquired a Laserjet P3005dn that should be networkable, and has an Ethernet port in the back, but when turned on, there is no network configuration in the menu.  From the menu, I choose Configure Device, I/O.  The only option is "I/O Timeout".  The