db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: Returning NULL from a database-side Java function
Date Tue, 09 Oct 2007 14:40:56 GMT
Alan Burlison wrote:
> I have a Java database-side function that does a simple lookup of a 
> string on a reference table and returns the corresponding integer.  If 
> the string can't be found I want to return NULL, but if I return a 
> Java null I get a database exception rather than the desired behaviour:
>
> Error: java.sql.SQLException: The exception 
> 'java.lang.NullPointerException' was thrown while evaluating an 
> expression., SQL State: 38000, Error Code: -1
>
> How do I return a 'database' NULL from a database-side Java function?
>
> Thanks,
>
Hi Alan,

It is hard to say where the NullPointerException originates. Could you 
post a reproducible test case and the full stack trace from derby.log? 
In general, you should be able to return null from user-written 
functions. The following experiment on the 10.4 mainline shows this:

First I write a simple class:

public class z
{
    public  static  String  returnsNull()
    { return null; }
}

Then I register and run the function under ij:

ij> create function returnsNull()
returns varchar( 30 )
language java
parameter style java
no sql
external name 'z.returnsNull'
;
0 rows inserted/updated/deleted
ij> values ( returnsNull() );
1                                                                                        
                                      

--------------------------------------------------------------------------------------------------------------------------------
NULL                                                                                     
                                      


1 row selected

Regards,
-Rick

Mime
View raw message