Pasar parámetros de cadena a procedimientos de Oracle Server vinculados desde SQL Server
Tengo un procedimiento de Oracle llamadoP_CREATE_USER
. Se necesita una solavarchar2
parámetro:
create or replace PROCEDURE
P_CREATE_USER (P_USERID varchar2)
...
Puedo ejecutar esto desde Oracle comoEXEC P_CREATE_USER('MyUserId')
Tenemos el servidor de Oracle vinculado a nuestro servidor SQL.
He intentado:
EXECUTE('P_CREATE_USER(''MyUserId'')') AT ORACLE_SERVER
Para mi problema, me sale:
El proveedor OLE DB "OraOLEDB.Oracle" para el servidor vinculado "ORACLE_SERVER" devolvió el mensaje "ORA-00900: declaración de SQL no válida".
Msg 7215, Nivel 17, Estado 1, Línea 1
No se pudo ejecutar la declaración en el servidor remoto 'ORACLE_SERVER'.
He intentado una serie de variantes, utilizando un espacio entreP_CREATE_USER
y el parámetro en lugar de paréntesis. He intentado usar@P_USERID=''MyUserId''
. No tengo problemas para ejecutar procedimientos sin parámetros de esta manera, pero no veo cómo pasar una cadena ...
Actualizar: El UserId utilizado para el servidor vinculado tiene permisos para ejecutar este procedimiento y puede ejecutarse directamente desde Oracle. Esto no es un problema de permisos. Lo mejor que puedo decir, el parámetro es lo único que causa un problema.