473,397 Members | 2,068 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,397 software developers and data experts.

Exception handling in db2 UDF

Hi,
Can someone tell me how to perform exception handling in DB2 UDFs(not
procedures).
ALso, while usin the SIGNAL statement in one of my UDFs I encountered
an error message which is as below

DB21034E The command was processed as an SQL statement because it was
not a
valid Command Line Processor command. During SQL processing it
returned:
SQL0104N An unexpected token "HANDLER" was found following "E INT;
DECLARE
EXIT". Expected tokens may include: "CONDITION". LINE NUMBER=12.
SQLSTATE=42601
The code that i used in my UDF is
DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503'
SIGNAL SQLSTATE '75002'
SET MESSAGE_TEXT = 'Customer number is not known';
So, Can anyone help me with this?

Thanks and regards
mailar

Nov 12 '05 #1
3 11299
SQL UDFs cannot contain any commands that are outside the scope of the
SQL reference. DB2 will take an SQL UDF and stick it directly into the
calling SQL, so that when it's executed it's indistinguishable from the
rest of the statement, as far as the engine is concerned.

An SQL Procedure, on the other hand, is completely separate entity,
which contains it's own set of information specific to it's execution.
As such, the SQL/PL language has directives that are NOT found in the
SQL reference, as they are specific to the procedur processing. I
believe "DECLARE EXIT HANDLER" is one of them.

ma****@gmail.com wrote:
Hi,
Can someone tell me how to perform exception handling in DB2 UDFs(not
procedures).
ALso, while usin the SIGNAL statement in one of my UDFs I encountered
an error message which is as below

DB21034E The command was processed as an SQL statement because it was
not a
valid Command Line Processor command. During SQL processing it
returned:
SQL0104N An unexpected token "HANDLER" was found following "E INT;
DECLARE
EXIT". Expected tokens may include: "CONDITION". LINE NUMBER=12.
SQLSTATE=42601
The code that i used in my UDF is
DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503'
SIGNAL SQLSTATE '75002'
SET MESSAGE_TEXT = 'Customer number is not known';
So, Can anyone help me with this?

Thanks and regards
mailar

Nov 12 '05 #2
Hi amurchis,
But does it mean that we cannot do error handling in UDFs?
Meanwhile I found a function RAISE_ERROR which raises an SQL state and
displays my error message
but the format of the message is like this

SQL0438N Application raised error with diagnostic text: "Invalid
customer number".
SQLSTATE=70001
but I just want 'Invalid customer number" to be displayed instead of
the whole message. So, could you help me with this

Thanks for the reply
mailar

amurchis wrote:
SQL UDFs cannot contain any commands that are outside the scope of the SQL reference. DB2 will take an SQL UDF and stick it directly into the calling SQL, so that when it's executed it's indistinguishable from the rest of the statement, as far as the engine is concerned.

An SQL Procedure, on the other hand, is completely separate entity,
which contains it's own set of information specific to it's execution. As such, the SQL/PL language has directives that are NOT found in the SQL reference, as they are specific to the procedur processing. I
believe "DECLARE EXIT HANDLER" is one of them.

ma****@gmail.com wrote:
Hi,
Can someone tell me how to perform exception handling in DB2 UDFs(not procedures).
ALso, while usin the SIGNAL statement in one of my UDFs I encountered an error message which is as below

DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it
returned:
SQL0104N An unexpected token "HANDLER" was found following "E INT;
DECLARE
EXIT". Expected tokens may include: "CONDITION". LINE NUMBER=12.
SQLSTATE=42601
The code that i used in my UDF is
DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503'
SIGNAL SQLSTATE '75002'
SET MESSAGE_TEXT = 'Customer number is not known';
So, Can anyone help me with this?

Thanks and regards
mailar


Nov 12 '05 #3
Even in a stored procedure, you'd still get a message similar to what
you see below. I believe it's something like "procedure <name>,
specific name <specname> returned sqlstate <your state> with message
text "<your text>", but don't hold me to that.

Error handling in an SQL UDF must be done strictly with SQL commands.

FYI: I am NOT an expert in SQL. The only thing I can suggest is that
you check the SQL reference for CREATE FUNCTION (SQL) for what commands
are available.

ma****@gmail.com wrote:
Hi amurchis,
But does it mean that we cannot do error handling in UDFs?
Meanwhile I found a function RAISE_ERROR which raises an SQL state and
displays my error message
but the format of the message is like this

SQL0438N Application raised error with diagnostic text: "Invalid
customer number".
SQLSTATE=70001
but I just want 'Invalid customer number" to be displayed instead of
the whole message. So, could you help me with this

Thanks for the reply
mailar

amurchis wrote:
SQL UDFs cannot contain any commands that are outside the scope of


the
SQL reference. DB2 will take an SQL UDF and stick it directly into


the
calling SQL, so that when it's executed it's indistinguishable from


the
rest of the statement, as far as the engine is concerned.

An SQL Procedure, on the other hand, is completely separate entity,
which contains it's own set of information specific to it's


execution.
As such, the SQL/PL language has directives that are NOT found in the


SQL reference, as they are specific to the procedur processing. I
believe "DECLARE EXIT HANDLER" is one of them.

ma****@gmail.com wrote:

Hi,
Can someone tell me how to perform exception handling in DB2
UDFs(not
procedures).
ALso, while usin the SIGNAL statement in one of my UDFs I
encountered
an error message which is as below

DB21034E The command was processed as an SQL statement because it
was
not a
valid Command Line Processor command. During SQL processing it
returned:
SQL0104N An unexpected token "HANDLER" was found following "E INT;
DECLARE
EXIT". Expected tokens may include: "CONDITION". LINE NUMBER=12.
SQLSTATE=42601
The code that i used in my UDF is
DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503'
SIGNAL SQLSTATE '75002'
SET MESSAGE_TEXT = 'Customer number is not known';
So, Can anyone help me with this?

Thanks and regards
mailar


Nov 12 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
by: adi | last post by:
Dear all, This is more like a theoretical or conceptual question: which is better, using exception or return code for a .NET component? I had created a COM object (using VB6), which uses...
6
by: Daniel Wilson | last post by:
I am having exception-handling and stability problems with .NET. I will have a block of managed code inside try...catch and will still get a generic ..NET exception box that will tell me which...
7
by: Noor | last post by:
please tell the technique of centralize exception handling without try catch blocks in c#.
3
by: Master of C++ | last post by:
Hi, I am an absolute newbie to Exception Handling, and I am trying to retrofit exception handling to a LOT of C++ code that I've written earlier. I am just looking for a bare-bones, low-tech...
2
by: tom | last post by:
Hi, I am developing a WinForm application and I am looking for a guide on where to place Exception Handling. My application is designed into three tiers UI, Business Objects, and Data Access...
9
by: C# Learner | last post by:
Some time ago, I remember reading a discussion about the strengths and weaknesses of exception handling. One of the weaknesses that was put forward was that exception handling is inefficient (in...
44
by: craig | last post by:
I am wondering if there are some best practices for determining a strategy for using try/catch blocks within an application. My current thoughts are: 1. The code the initiates any high-level...
4
by: Ele | last post by:
When Exception handling disabled compiler still spits out "C++ exception handler used." Why is that? Why does it ask for "Specify /EHsc"? Thanks! c:\Program Files\Microsoft Visual Studio...
41
by: Zytan | last post by:
Ok something simple like int.Parse(string) can throw these exceptions: ArgumentNullException, FormatException, OverflowException I don't want my program to just crash on an exception, so I must...
1
by: George2 | last post by:
Hello everyone, Such code segment is used to check whether function call or exception- handling mechanism runs out of memory first (written by Bjarne), void perverted() { try{
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.