![]() |
Datenbank: Oracle • Version: 9.2i, 10g
DLL-Funktionen in ORACLE nutzen
Moin moin,
ORACLE bietet ja die Möglichkeit, c-Funktionen aus externen DLL's in PL/SQL aufzurufen. Folgendes habe ich ich bereits eingerichtet:
SQL-Code:
Beim Ausführen erhalte ich jetzt folgende Fehlermeldung:
CREATE OR REPLACE LIBRARY RKE.meine_dll
IS 'D:\dll\meine_dll.dll'; CREATE OR REPLACE FUNCTION RKE.meine_funktion ( strPar1 IN VARCHAR2, strPar2 IN VARCHAR2, strPar3 IN VARCHAR2, strPar4 IN VARCHAR2, strPar5 IN VARCHAR2, strPar6 IN VARCHAR2, strPar7 IN VARCHAR2, strPar8 IN VARCHAR2, lngPar9 IN NUMBER) RETURN BOOLEAN AS LANGUAGE C LIBRARY rke.meine_dll NAME "meine_funktion"; CREATE OR REPLACE PACKAGE RKE.mein_package IS FUNCTION MyFunction(Param1 IN NUMBER) RETURN NUMBER; END; / CREATE OR REPLACE PACKAGE BODY RKE.mein_package AS FUNCTION MyFunction(Param1 IN NUMBER) RETURN NUMBER IS i BOOLEAN; BEGIN i := rke.meine_funktion ('3', '', 'WOTAN', '', '', '', '', '', 0); RETURN (0); END; -------------------------------------------------------------------------------- END; / Zitat:
|
Re: DLL-Funktionen in ORACLE nutzen
Wie sehen TnsNames.ora und Listener.ora des Servers aus?
Oder um uns die ganzen Roundtrips aus Frage & Antwort zu sparen: Wie sieht es aus wenn du es ![]() |
Re: DLL-Funktionen in ORACLE nutzen
listener.ora # listener.ora Network Configuration File: d:\oracle\product\10.2.0\db_2\network\admin\listen er.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = d:\oracle\product\10.2.0\db_2) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) ) ) tnsnames.ora MYDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = servicename) ) ) Den Link schaue ich mir gerade an. Habe schon diverse ähnlich aussehende Hinweise bekommen. Nachdem ich diese versucht habe einzubauen, startete der Listener nicht mehr. :gruebel: |
Re: DLL-Funktionen in ORACLE nutzen
So ich habe jetzt versucht, einige der im Link und anderen Quellen aus dem I-Net beschriebenen Vorschläge umzusetzen:
listener-ora # listener.ora Network Configuration File: d:\oracle\product\10.2.0\db_2\network\admin\listen er.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ENVS = "LD_LIBRARY_PATH=D:\Programmierung\dll_Pfad") (ORACLE_HOME = d:\oracle\product\10.2.0\db_2) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = extproc)) (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) ) ) ) tnsnames.ora extproc_connection_data = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = extproc)) (CONNECT_DATA = (SID = PLSExtProc)) ) Mit den Angaben bei ENVS habe ich auch noch etwas "herumgespielt" (Es gibt ja noch EXTPROC_DLLS). Aber entweder bekomme ich wieder den bereits beschriebenen RPC-Fehler oder den Fehler Invalid DLL-Path. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz