2017-02-06 1 views
0

J'ai configuré un serveur lié à partir de SQL Server vers une base de données Oracle. La connexion a été testée avec succès. J'utilise ce qui suit pour interroger une table de SQL Server et il m'a retourné avec succès le jeu de résultats:Le fournisseur OLE DB "OraOLEDB.Oracle" pour le serveur lié a renvoyé le message "ORA-06576: pas un nom de fonction ou de procédure valide"

EXEC ('select * from tablename') AT [linkedservername] 

Je courais le suivant de la base de données Oracle, il (procédure stockée) fonctionne:

EXEC schemaname.storedprocedurename 

Cependant, quand je courais ce à partir du serveur SQL, il m'a renvoyé le message d'erreur ORA-00900: invalid SQL statement

EXEC('call schemaname.storedprocedurename') AT [linkedservername] 

Quelqu'un a une idée de ce qui pourrait être la cause?

+0

'EXEC [RemoteServer] .DatabaseName.DatabaseOwner.StoredProcedureName' – Eric

Répondre

0

Matt, Il vous manque le() après le nom de la procédure.

EXEC('call schemaname.storedprocedurename()') AT [linkedservername] 

Aussi, assurez-vous des éléments suivants

  1. Le compte utilisé pour relier les serveurs a accès à la procédure stockée (schéma)
  2. Parfois, vous devrez peut-être omettre le nom de schéma et il suffit de faire 'Call SPName()'