2016-07-18 53 views
1

zu IQ‘UDF Guide Accroding finden,kann nicht Funktion in der dynamischen Bibliothek 'libudfex.so'

UDF-Prozedur erstellen, wie unten:

  1. die UDF von dem Server erklärt die Verwendung von CREATE FUNCTION oder CREATE AGGREGATE FUNCTION

  2. schreiben die UDF-Bibliothek Identifikationsfunktion

  3. Definieren Sie die UDF als eine Gruppe von C- oder C++ - Funktionen.

  4. Implementieren Sie die Funktionseinstiegspunkte in C/C++.

  5. Kompilieren Sie die UDF-Funktionen und die Bibliotheksidentifikationsfunktionen
  6. Verknüpfen Sie die kompilierte Datei in eine dynamisch verknüpfbare Bibliothek.

Nachdem ich das ganze Verfahren getan alreary und Deklarieren FUNCTION in Interactice SQL CREATE, nenne ich Funktion und bekam Fehlerreaktion wie folgt:

`

nicht-Anweisung ausführen konnte.

konnte nicht 'my_sample_function' in der dynamischen Bibliothek 'libudfex.so' SQLCODE = -621, ODBC 3 State = "HY000" Zeile 1, Spalte 1 SELECT my_sample_function (test.a, TEST.B) als aaa finden FROM Test WHERE test.a = 3

`

Antwort

0

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01034.1520/doc/html/jfo1254246965959.html

Nachdem die dynamisch verknüpfbaren Bibliothek zusammengestellt und in Verbindung gebracht worden, vollständig eine dieser Aufgaben:

1. (Empfohlen) Aktualisieren Sie den CREATE FUNCTION ... EXTERNAL NAME so, dass er einen expliziten Pfadnamen für die UDF-Bibliothek enthält. Platzieren Sie die UDF-Bibliotheksdatei in dem Verzeichnis, in dem alle IQ-Bibliotheken gespeichert sind.

2.Starten Sie den IQ-Server mit einem Bibliotheksladepfad, der den Speicherort der UDF-Bibliothek enthält.

3.Unter UNIX ändern Sie den LD_LIBRARY_PATH innerhalb des Startskripts start_iq. Während LD_LIBRARY_PATH für alle UNIX-Varianten universell ist, wird SHLIB_PATH für HP bevorzugt und LIB_PATH für AIX.

Vielleicht vermissen Sie diesen Schritt

+0

Es ist Arbeit, THX. – Jim