Übergeben von Zeichenfolgenparametern an verknüpfte Oracle Server-Prozeduren von SQL Server
Ich habe eine Oracle-Prozedur aufgerufenP_CREATE_USER
. Es dauert eine einzigevarchar2
Parameter:
create or replace PROCEDURE
P_CREATE_USER (P_USERID varchar2)
...
Ich kann dies von Oracle als ausführenEXEC P_CREATE_USER('MyUserId')
Wir haben den Oracle-Server mit unserem SQL Server verbunden.
Ich habe es versucht:
EXECUTE('P_CREATE_USER(''MyUserId'')') AT ORACLE_SERVER
Für meine Mühe bekomme ich:
Der OLE DB-Anbieter "OraOLEDB.Oracle" für den Verbindungsserver "ORACLE_SERVER" hat die Meldung "ORA-00900: Ungültige SQL-Anweisung" zurückgegeben.
Meldung 7215, Ebene 17, Status 1, Zeile 1
Die Anweisung konnte auf dem Remoteserver 'ORACLE_SERVER' nicht ausgeführt werden.
Ich habe eine Reihe von Varianten ausprobiert und ein Leerzeichen dazwischen verwendetP_CREATE_USER
und der Parameter anstelle von Klammern. Ich habe versucht mit@P_USERID=''MyUserId''
. Ich habe kein Problem damit, parameterlose Prozeduren auf diese Weise auszuführen, aber ich kann nicht herausfinden, wie eine Zeichenfolge übergeben wird ...
Aktualisieren: Die für den Verbindungsserver verwendete Benutzer-ID verfügt über Berechtigungen zum Ausführen dieses Verfahrens und kann direkt von Oracle aus ausgeführt werden. Dies ist kein Berechtigungsproblem. Wie ich am besten beurteilen kann, ist der Parameter das einzige, was ein Problem verursacht.