DROP FUNCTION

Mithilfe des Befehls DROP FUNCTION können Sie eine vorhandene benutzerdefinierte Funktion aus einer Datenbank entfernen. Wenn Sie eine Funktion löschen, werden auch die Funktionsobjektdateien aus dem Benutzercode-Objektrepository entfernt.

Übersicht

Syntax für die Löschung einer benutzerdefinierten Funktion:
DROP FUNCTION function_name(argument_types)

Eingaben

Der Befehl DROP FUNCTION akzeptiert die folgenden Eingaben:
Tabelle 1. Eingaben für DROP FUNCTION
Eingabe Beschreibung
FUNCTION_NAME Gibt den Namen einer vorhandenen benutzerdefinierten Funktion an. Auf Systemen, die mehrere Schemas unterstützen, können Sie einen Namen im Format 'Schema.Funktion' angeben, um eine Funktion in einem anderen Schema der aktuellen Datenbank zu löschen. Die Löschung einer Funktion in einer anderen Datenbank ist nicht möglich.
argument_types Gibt eine Liste vollständig angegebener Argumentdatentypen zur eindeutigen Identifikation der Funktion an. Alle Netezza Performance Server werden unterstützt. Zeichenfolgen müssen entweder eine Größenangabe oder die Angabe ANY für generische Größen umfassen. Bei numerischen Typen (NUMERIC) müssen Sie die Genauigkeit und die Anzahl der Kommastellen oder ANY für generische Größen angeben. Sie können auch den VARARGS-Wert angeben, um eine variable Argumentfunktion zu löschen.

Ausgaben

Der Befehl DROP FUNCTION hat die folgenden Ausgaben:
Tabelle 2. Ausgaben für DROP FUNCTION
Ausgabe Beschreibung
DROP FUNCTION Die Nachricht, die das System zurückgibt, wenn der Befehl erfolgreich ist.
ERROR: Name: No such function Die Nachricht, die vom System zurückgegeben wird, wenn die angegebene Funktion in der aktuellen Datenbank nicht vorhanden ist.
Error: DropFunction: existing UDX name(argument_types) differs in size of string/numeric arguments Dieser Fehler gibt an, dass eine UDX mit diesem Namen vorhanden ist, bei der jedoch für Zeichenfolgeargumente oder numerische Argumente andere Größen angegeben wurden. Um die Funktion löschen zu können, müssen Sie sicherstellen, dass die exakte Argumenttypliste mit den korrekten Größen angegeben wurde.
ERROR: Can't delete function name - object depends on it Die Nachricht, die vom System zurückgegeben wird, wenn eine UDF in einer Tabelle oder Ansicht referenziert wird. Sie können die UDF erst löschen, nachdem die Abhängigkeit aufgelöst wurde.

Beschreibung

Eine benutzerdefinierte Funktion, die momentan in einer aktiven Abfrage verwendet wird, kann nicht gelöscht werden. Nachdem die aktive Abfragetransaktion abgeschlossen ist, verarbeitet das Netezza Performance Server den Befehl DROP FUNCTION, um die Funktion zu löschen. Die Funktion muss in der aktuellen Datenbank definiert sein.

Sie können keine UDF löschen, die von einer vorhandenen Tabelle oder Ansicht referenziert wird. Weitere Informationen zum Auflösen von Abhängigkeiten zu UDFs, die Sie löschen möchten, finden SieunterAbhängigkeitsprüfungen vor dem Löschen von UDXs.

Zugriffsrechte erforderlich

Um eine UDF löschen zu können, müssen Sie eines der folgenden Kriterien erfüllen:
  • Sie müssen über die Entfernungsberechtigung für das FUNCTION-Objekt verfügen.
  • Sie müssen über die Entfernungsberechtigung für das betreffende UDF-Objekt verfügen.
  • Sie müssen der Eigner der UDF sein.
  • Bei Systemen, die mehrere Schemas unterstützen, müssen Sie der Datenbankadministrator oder der Eigner der aktuellen Datenbank bzw. des aktuellen Schemas sein.

Allgemeine Aufgaben

Mithilfe des Befehls DROP FUNCTION können Sie eine vorhandene Funktion aus einer Datenbank löschen.

Verwendung

Im Folgenden ist ein Verwendungsbeispiel angegeben.
  • Geben Sie Folgendes ein, um eine Beispielfunktion namens myfunc(char(12)) zu löschen:
    MYDB.SCHEMA(MYUSER)=> DROP FUNCTION myfunc(char(12));