I only asked for the doc reference, because it was noted that the
time and effort had already been taken to find a doc reference. Seemed
only natural, that the link could have been included for completeness
[my first draft I recall said /for the archives/; hmmm], so I asked if
perhaps a doc link could be added. Regardless, I searched out the
documentation...
The reference in InfoCrap, is obfuscated by reference to /*SYS
naming/ instead of that being called out as /System Naming/; I searched
for an exact match on the latter. The specific doc can be found by
drilling down in Programming to the SQL /UDF Concepts/ topic for [or
directly, via the following links]:
SQL Programming->Routines->User-defined Functions UDFs
http://publib.boulder.ibm.com/infocenter/systems/scope/i5os/topic/db2/rbafzfuncres.htm
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/sqlp/rbafyudfduvc.htm
_Full name of a function_
The full name of a function using *SQL naming is
<schema-name>.<function-name>
The full name of a function in *SYS naming is
<schema-name>/<function-name>
Function names _cannot be qualified using *SYS naming_ in DML
statements.
That is very cleverly hidden, since instead of /qualified function/
like the link I gave, it is referred to as a /Full name of a function/
instead. "Full name"? <sarcasm> /Full name/ is *so* much more
intuitive than /qualified function/, since _all other references_ I see
for naming\delimiters, suggest that names would be *qualified* by a
schema [library] name. </sarcasm>
Oh yeah! They are [probably] being written by ESL Chinese. Maybe I
should just be happy that they did not call out SCHEMA names as
_surnames_ or something even more ridiculous. ;-)
Why it was left unstated in the /Qualified function resolution/ link
reference that I gave... I have no clue.
http://publib.boulder.ibm.com/infocenter/systems/scope/i5os/topic/db2/rbafzfuncres.htm
_Function resolution_
A function is invoked by its function name, which is _implicitly_
or _explicitly_ *qualified* with a schema name, followed by parentheses
that enclose the arguments to the function.
<<SNIP>>
Function resolution is similar for functions that are invoked with
a qualified or unqualified function name with the exception that for an
unqualified name, the database manager needs to search more than one
schema. **
- Qualified function resolution: When a function is invoked with
a function name and a schema name, the database manager only searches
the specified schema to resolve which function to execute. The database
manager selects candidate functions based on the following criteria:
<<SNIP>>
Apparently no room available in that text, to point out the minor
detail that _explicit_ /Qualified function resolution/ is _not possible_
with /System Naming/. ;-)
Reader Comment submitted! "Please add **: An explicitly qualified
function name is unsupported for System Naming." No mention of DML is
required here, because function resolution implies run-time.
Regards, Chuck
vhamberg@xxxxxxxxxxx wrote:
I forget exactly where - there are some SQL Programming manuals
that tell how the system resolves stuff in the 2 naming styles.
There is also a Redbook on UDFs and SPs, etc., that might have this.
As an Amazon Associate we earn from qualifying purchases.