Unable to run SQL*PLUS. Make certain that a current version of the Oracle client code is installed at the distributor.
The error subject line is caused due to issues with Oracle Client and Networking connection privileges. By default when you have SQL replication setup to an Oracle client then the account under which SQL Server instance runs on the Distributor must be granted read and execute permissions for the directory (and all subdirectories) in which the Oracle client networking software is installed.
Few times I have seen that this particular service account also requires REGISTRY permissions too and say if certain permissions are not granted then it is evident that sometimes the Oracle client components are not installed properly, though the outcome looks like they are installed. In addition to the above problem you will receive the following error message:
"Connection to server failed with [Microsoft OLE DB Provider for Oracle]. Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. Provider is unable to function until these components are installed."
Further to resolve this issue you may need to reinstall the appropriate Oracle client to be installed at the Distributor, and again you need to ensure that SQL Server services are restarted as it is required in order for SQL Server to recognize the client components. At few client places I observed that though the REGISTRY permissions are set and say we have verified that permissions are granted and that components are installed correctly, but this error persists. So to resolve this further you need to verify that the registry settings at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI are correct as per the relevant Oracle version software, they are (source;BOL):
- For Oracle 10g, the correct settings are
- OracleOciLib = oci.dll
- OracleSqlLib = orasql10.dll
- OracleXaLib = oraclient10.dll
- For Oracle 9i, the correct settings are
- OracleOciLib = oci.dll
- OracleSqlLib = orasql9.dll
- OracleXaLib = oraclient9.dll
There are many other error text that are clear enough to give a clue to diagnose the issue, but if you can refer to the documentation (BOL in this case) you are in a good start.