UDX-Umgebung
Die UDX-API-Version 2 bietet Unterstützung für die UDX-Umgebung. Die UDX-Umgebung besteht aus einer Liste mit mindestens einem Variablennamen und Wertepaaren, die Sie für eine UDF, ein UDA oder eine UDTF beim Registrieren angeben können. Durch die Verwendung von Umgebungsvariablen können Sie das UDX-Verhalten in der UDX-Definition konditionalisieren.
Die Umgebungsvariablen vereinfachen bei Bedarf den Prozess zum Ändern des UDX-Verhaltens. Sie ändern eine Variable, indem Sie die UDX durch die Angabe neuer Variablen oder Werte oder durch das Löschen der Variablen ändern. Obwohl die Variablenwerte im Quellcode für die UDX definiert werden können, muss der Quellcode nach einer Änderung der Werte bearbeitet und die UDX muss erneut kompiliert und registriert werden, um das neue Verhalten zu implementieren. Wenn Sie beim Aufrufen der UDX Variablen als Argument für die UDX definiert haben und die Variablen ändern, müssen Sie auch die SQL-Abfrage ändern, mit der die UDX aufgerufen wird.
CREATE OR REPLACE FUNCTION usdToEurosFunc(int) RETURNS int4 LANGUAGE
CPP PARAMETER STYLE NPSGENERIC ENVIRONMENT 'USD_EURO'='0.7268'
EXTERNAL CLASS NAME 'CusdToEuros' EXTERNAL HOST OBJECT
'/home/nz/udx_files/usdEuroFunc.o_x86' EXTERNAL SPU OBJECT
'/home/nz/udx_files/usdEuroFunc.o_spu';CREATE OR REPLACE FUNCTION usdToEurosFunc(int) RETURNS int4 LANGUAGE
CPP PARAMETER STYLE NPSGENERIC ENVIRONMENT 'USD_EURO'='0.8241'
EXTERNAL CLASS NAME 'CusdToEuros' EXTERNAL HOST OBJECT
'/home/nz/udx_files/usdEuroFunc.o_x86' EXTERNAL SPU OBJECT
'/home/nz/udx_files/usdEuroFunc.o_spu';Sie können die Umgebungsvariablen mithilfe der CREATE OR REPLACE-Befehle für Funktionen und Aggregate angeben und ändern. Mithilfe des Befehls ALTER können Sie die Variablenwerte ändern und alle Variableneinstellungen der Umgebung anhand der NO ENVIRONMENT-Syntax aufheben. Zum Ändern eines vorhandenen Sets mit mindestens einem Umgebungspaar müssen Sie alle Umgebungseinstellungen angeben. Der Befehl ALTER ersetzt die aktuelle Liste durch die im Befehl ALTER angegebene Liste.
UdxEnvironment* getEnvironment()- Die Methode getNumEntries() gibt die Anzahl der Umgebungsvariablen im UdxEnvironment-Objekt
zurück. Zum Beispiel:
int numEntries = env->getNumEntries(); - Die Methode findEntry() verarbeitet eine Eingabezeichenfolge und gleicht sie mit den Variablennamen ab. Sie gibt die Schlüsselnummer des ersten übereinstimmenden Eintrags in der Umgebungsdatenstruktur oder '-1' zurück, wenn die Zeichenfolge nicht gefunden wurde.
- Die Methode getEntry() verarbeitet einen Eingabeindex oder einen Variablennamenwert und gibt das übereinstimmende UdxEnvironmentEntry-Element oder einen Nullwert zurück, wenn kein Element gefunden wurde.
- Die Methode getKey() gibt den übereinstimmenden Umgebungsvariablennamen aus einem UdxEnvironmentEntry-Element zurück.
- Die Methode getValue() gibt die übereinstimmende Umgebungsvariable aus einem UdxEnvironmentEntry-Element zurück.