Generische UDXs registrieren

Wenn Sie eine generische UDX (User-Defined Extension; benutzerdefinierte Erweiterung) mithilfe des Befehls CREATE [OR REPLACE] registrieren, können Sie Zeichendatentypen oder numerische Datentypen mithilfe des Schlüsselworts ANY als generisch deklarieren.

Im Folgenden ist ein Beispiel für eine UDF dargestellt:
MYDB.SCHEMA(MYUSER)=> CREATE FUNCTION number(num NUMERIC(ANY))
RETURNS NUMERIC(ANY) LANGUAGE CPP PARAMETER STYLE NPSGENERIC 
EXTERNAL CLASS NAME 'Nnumber' 
EXTERNAL HOST OBJECT '/home/nz/udx_files/number.o_x86' 
EXTERNAL SPU OBJECT '/home/nz/udx_files/number.o_spu10';

In diesem Beispiel verarbeitet die Funktion number() einen numerischen Eingabedatentyp einer beliebigen gültigen Größe und gibt einen numerischen Datentyp einer gültigen Größe zurück, die von der UDF berechnet wird.

Im Folgenden ist ein Beispiel für ein UDA dargestellt. UDAs lassen nur generische Argumente zu.
CREATE OR REPLACE AGGREGATE char20 (CHAR(ANY))
RETURNS CHAR(20) STATE (CHAR(20))
LANGUAGE CPP PARAMETER STYLE NPSGENERIC
EXTERNAL CLASS NAME 'Char20'
EXTERNAL HOST OBJECT '/tmp/udx_test/UDX_CharMax.o_x86'
EXTERNAL SPU OBJECT '/tmp/udx_test/UDX_CharMax.o_spu10';

UDAs, die über große Zeichenfolgestatusvariablen verfügen, können sich negativ auf die Leistung auswirken.