Przekazywanie parametrów ciągu do połączonych procedur Oracle Server z SQL Server
Mam wywoływaną procedurę OracleP_CREATE_USER
. To zajmuje jeden singielvarchar2
parametr:
create or replace PROCEDURE
P_CREATE_USER (P_USERID varchar2)
...
Mogę uruchomić to z Oracle asEXEC P_CREATE_USER('MyUserId')
Mamy serwer Oracle połączony z naszym serwerem SQL.
Próbowałem:
EXECUTE('P_CREATE_USER(''MyUserId'')') AT ORACLE_SERVER
Za moje kłopoty dostaję:
Dostawca OLE DB „OraOLEDB.Oracle” dla serwera połączonego „ORACLE_SERVER” zwrócił komunikat „ORA-00900: niepoprawna instrukcja SQL”.
Msg 7215, Level 17, State 1, Line 1
Nie można wykonać instrukcji na serwerze zdalnym „ORACLE_SERVER”.
Próbowałem wielu wariantów, używając spacji międzyP_CREATE_USER
i parametr zamiast nawiasów. Próbowałem użyć@P_USERID=''MyUserId''
. Nie mam problemu z uruchomieniem procedur bez parametrów w ten sposób, ale nie widzę sposobu, aby przekazać ciąg ...
Aktualizacja: Identyfikator użytkownika używany dla serwera połączonego ma uprawnienia do uruchomienia tej procedury i może uruchomić ją bezpośrednio z Oracle. To nie jest kwestia uprawnień. Jak mogę powiedzieć, parametr jest jedyną przyczyną problemu.