zoukankan      html  css  js  c++  java
  • oracle组建:ODAC112021Xcopy_x64,在开发机上,不用安装oracle的客户端等开发

    配置的应用程序为x64的应用程序,以下解决方案是为了连接远程服务器上的oracle 11g 的解决方案。

    • 下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
    • 下载版本:64-bit ODAC 11.2 Release 3 (11.2.0.2.1) Xcopy for Windows x64
    • 下载后文件名:ODAC112021Xcopy_x64.zip

    解压后将看到如下目录:

    • asp.net               -- asp.net 2.0需要的放在bin下的文件。
    • asp.net4  -- asp.net 2.0需要的放在bin下的文件。
    • instantclient_11_2 -- 公共的dll,需要的放在bin下的文件。
    • odp.net4  -- winform2.0 需要的放在bin下的文件。
    • odp.net20  -- winform2.0 需要的放在bin下的文件。
    • oledb   -- 公共的dll,需要的放在bin下的文件。
    • oramts   -- 在开发时,这个文件,我没有用到
    • xxx.bat(一些安装的命令文件,这些文件不需要执行)

    我在开发时,

    • 1,)没有直接执行instantclient_11_2下的任何文件,而是把该目录下的所有文件及文件夹拷贝到bin目录下(或者不拷贝应用程序的bin下,把该目录拷贝到某一个路径下,之后在环境path变量中追加该地址到path中)。
    • 2,)之后包oledb下的所有.dll拷贝到 bin目录下;
    • 3,)odp.net4下载所有.dll拷贝到bin目录下。 

    到此我们需要的所有oracle的dll已经拷贝完成,添加Oracle.DataAccess.dll引用到我们工程中;

    在ODAC112021Xcopy_x64odp.net4odp.netPublisherPolicy4下包含两个文件:
    Policy.4.112.Oracle.DataAccess.config
    Policy.4.112.Oracle.DataAccess.dll
    我已经把他们拷贝到bin目录了,之后打开Policy.4.112.Oracle.DataAccess.config,将:
      <runtime>
          <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
              <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
                <bindingRedirect oldVersion="4.112.0.0-4.112.2.0" newVersion="4.112.2.0"/>
            </dependentAssembly>
          </assemblyBinding>
       </runtime>
    添加到工程的config中。

    在工程中引入命名空间(而不需要引入System.Data.OracleClient,而是Oracle.DataAccess.dll或者Oracle.ManagedDataAccess.dll):

     1 using Oracle.DataAccess.Client; 2 using Oracle.DataAccess.Types; 

    测试代码:

     1 string connecitonString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.21.3.34)(PORT=1521))(CONNECT_DATA=(SID=db001)));User Id=username;Password=password;";
     2 
     3             DataTable datatable = new DataTable();
     4 
     5             using (OracleConnection connection = new OracleConnection(connecitonString))
     6             {
     7                 using (OracleCommand command = new OracleCommand())
     8                 {
     9                     connection.Open();
    10 
    11                     command.Connection = connection;
    12                     command.CommandText = "select * from table_001 where rownum<10";
    13                     command.CommandType = CommandType.Text;
    14 
    15                     OracleDataAdapter dataAdapter = new OracleDataAdapter(command);
    16 
    17                     dataAdapter.Fill(datatable);
    18                 }
    19             }

    折腾了,n久才把程序调通。

    注意:发布时需要包含bin下的所有外部oracle组件.dll相关文件。

  • 相关阅读:
    JMX rmi的一些问题
    hdu 1022 Train Problem I
    大学的英文名及缩写
    大学的英文名及缩写
    围棋术语
    围棋术语
    走遍美洲 —— 加勒比海
    走遍美洲 —— 加勒比海
    图像处理与计算机视觉的论文创新点总结
    图像处理与计算机视觉的论文创新点总结
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/4551975.html
Copyright © 2011-2022 走看看