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.
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.
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.