Michael -
One word:
Overloading!
The default data type for character literals passed by SQL (as in your
second example) is VARCHAR.
Your UDTF is obviously expecting CHAR values, but since you are passing
VARCHAR values { 'A' and 'K'} it is looking for a UDTF named MYTESTUDTF
which accepts VARCHAR values and does not find one.
Regards,
Steve
"Michael Naughton" wrote in message
news:mailman.6681.1340919843.2513.midrange-l@xxxxxxxxxxxx...
I just went through this article and created my first UDTF, and I agree --
this is great!
I do have one question, though. When I try to test it in iNav passing
literals, I have to define them. For example, this works:
SELECT * FROM TABLE(MYLIB/MYTESTUDTF(char('A',1),char('K',1))) AS XYZ
but this does not:
SELECT * FROM TABLE(MYLIB/MYTESTUDTF('A', 'K')) AS XYZ
instead, I get a "MYTESTUDTF in MYLIB type *N not found" error.
I'm curious, because when I call a stored procedure, I don't have to do
that -- for example, this works:
CALL MYLIB/MYTESTPROC('TESTVALUE',40,10,1,'C','*ALL')
Obviously, the UDTF treats passed parameters differently from the way the
stored procedure does, but does anyone know why? Is there a way to avoid
having to define literals passed to the UDTF?
Thanks very much,
Mike Naughton
Senior Programmer/Analyst
Judd Wire, Inc.
124 Turnpike Road
Turners Falls, MA 01376
413-676-3144
Internal: x 444
mnaughton@xxxxxxxxxxxx
****************************************
NOTICE: This e-mail and any files transmitted with it are confidential and
solely for the use of the intended recipient. If you are not the intended
recipient or the person responsible for delivering to the intended
recipient, be advised that any use is
strictly prohibited. If you have received this e-mail in error, please
notify us immediately by replying to it and then delete it from your
computer.
As an Amazon Associate we earn from qualifying purchases.