MYDB.SCHEMA(MYUSER)=> CREATE FUNCTION CustomerName(varchar(ANY))
RETURNS int4 LANGUAGE CPP PARAMETER STYLE NPSGENERIC API VERSION 2
EXTERNAL CLASS NAME 'CCustomerName'
EXTERNAL HOST OBJECT '/home/nz/udx_files/customername.o_x86'
EXTERNAL SPU OBJECT '/home/nz/udx_files/customername.o_spu10';
関数は、最大 64,000 文字 (VARCHAR の最大値) の文字ストリングを受け入れます。 関数の本文中で、コードは、任意の有効な長さのストリングを受け取り可能であるという計画に沿って、ストリングおよび数値を処理する必要があります。 つまり、ストリングのサイズを検査して取得し、必要に応じて処理を行い、値を関数に戻します。
ジェネリック・サイズ引数により、入力ストリングおよび数値に特定の制限を設定しないようにすることができます。また、可変の入力値サイズを管理するために開発者が過度に大きいサイズまたは最大サイズの値を使用しなければならないような場合に、ジェネリック・サイズ引数を使用すると、リソースの割り振りを最小化できます。また、このフォーマットにより、入力引数や戻り値が異なる類似したプロシージャーを登録および保守する必要性や、入力値がキャストされる可能性を軽減することもできます。