Is it possible you have multiple CharOrder UDFs defined and wrong one is
being invoked?
Run following query to verify if this is the case:


Also, you can recreate the UDF with SET OPTION DBGVIEW=*SOURCE and debug it
using iNav's graphical system debugger to verify if your UDF is being hit
and if so, why it returns NULL.


2007 System i Fall Technical Conference | Orlando | November 4-7
Celebrating 10-Years of SQL Performance Excellence on IBM i5/OS and OS/400

-----Original Message-----
Subject: First SQL UDF

I am trying to write my first SQL UDF converting a numeric value that is 8.0
to an alpha value that is 7 long right justified with no leading zeros.

The code currently used to tie files together in RPG is:

EvalR Work7 = %EditC(AiOrder:'Z')

In SQL I am using:

Substr(Space(7), 1, 7 - Length(Trim(Char(AiOrder)))) Concat


I tried creating a UDF to accomplish the above to shorten internal SQL Code.

Obviously I am doing something wrong. The Function does get created but
when I try to run, all I get is null values.

Create function CharOrder

(numb DEC)

Returns char

language SQL

returns null on null input


declare numb dec(8);

declare alpha char(7);

set alpha =

Substr(Space(7), 1, 7 - Length(Trim(Char(numb)))) Concat


Return alpha;




This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].