主题说明了一切:确定我正在运行的oracle客户端的确切版本的最佳方法是什么?我们的客户都在运行Windows.
我找到了一个运行tnsping实用程序的建议,没有参数,它显示版本信息.有没有更好的办法?
客户端安装是否将此信息放在任何类型的文本文件中?
托管和非托管Oracle ODP.Net驱动程序之间是否存在任何性能基准测试?
(即除了简化架构/部署之外,移动到托管驱动程序是否有任何优势)
我在Windows 7x64上连接到Oracle数据库时遇到了困难
我的环境如下:
我已将所有项目的目标CPU明确地设为x86 CPU(而不是Any或x86)
我正在使用DbProviderFactory.GetFactory进行连接
我的app.config中的My ConnectionString条目如下所示:
<add name="MYORACLE"
connectionString = "User ID=MYPASSWORD;Password=MYPASSWORd;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MYHOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MYSERVICE)));"
providerName="System.Data.OracleClient" />
Run Code Online (Sandbox Code Playgroud)
(我已尝试使用各种样式的连接字符串但没有成功)
当我编译应用程序时,如果我从Debug文件夹运行可执行文件,它就能正常连接.但是,如果我尝试在Visual Studio中运行它,则在打开连接时它会失败
ORA-06413: Connection not open.\n
Run Code Online (Sandbox Code Playgroud)
这是一个如何被调用的例子:
[TestMethod]
public void ConnectToOracle_Success()
{
var connectionStringSettings = ConnectionBuilder.GetConnectionStringSetting(OracleConnectionName);
var providerFactory = ConnectionBuilder.GetProviderFactory(connectionStringSettings);
ConnectionBuilder.ValidateConnectionString(connectionStringSettings);
using (var connection = providerFactory.CreateConnection())
{
Assert.IsNotNull(connection);
connection.ConnectionString = connectionStringSettings.ConnectionString;
try
{
connection.Open();
}
catch (Exception e)
{
Assert.Equals(e.Message, "");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在Windows 7x64上看到过与Visual Basic 6类似的东西,而Oracle并不喜欢它安装的路径(即括号"Programs(x86)").这是同类的事情,还是有另一种说服Oracle行事的方式.