• 一台主机同时支持x86与x64客户端安装


    上一篇写如何免安装Oracle来使用PL/SQL Developer,http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html

    这一篇则需要在一台主机上同时支持.net程序,不论编译成x86还是x64都要OK。

    1、下载Oracle Data Access Components(ODAC) Xcopy的两个版本:

    x86:http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html

    x64:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

    2、阅读里面的readme。

    以其中一个为例,另一个操作步骤一致。

    3、解压到任意文件夹(临时的,一会可以删掉)

    3.1 开始->运行->cmd->cd 该文件夹

    3.2 运行命令 install.bat all {目标路径:也就是最后要被安装的目录} odac

    其他参数请参考readme。

    image

    3.3 将其加入到系统环境变量中:

    PATH的值中增加:C:\Oracle\ODAC112030Xcopy_32bit;C:\Oracle\ODAC112030Xcopy_32bit\bin;C:\Oracle\ODAC112030Xcopy_x64;C:\Oracle\ODAC112030Xcopy_x64\bin;

    该值以实际情况为准。

    4、测试:

    写一个Console程序,程序需要引用Oracle.DataAccess.dll(且设置属性-〉复制本地-〉True),路径在:

    D:\Oracle\ODAC112030Xcopy_32bit\odp.net\bin\4\Oracle.DataAccess.dll

    或者

    D:\Oracle\ODAC112030Xcopy_x64\odp.net\bin\4\Oracle.DataAccess.dll

    编译的时候,可以选该工程的编译选项为x86/x64。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    // using System.Data.OracleClient;
    using Oracle.DataAccess.Client;
    
    namespace OracleTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (OracleConnection conn = new OracleConnection(ConfigurationManager.AppSettings["OracleConnectionString"]))
                {
                    try
                    {
                        conn.Open();
                        Console.WriteLine("Successful!\r\n");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("ERROR " + ex.ToString() + "\r\n");
                    }
                    finally
                    {
                        conn.Dispose();
                    }
                }
                Console.ReadKey();
            }
        }
    }
    
    

    5、使用XCopy的方式部署服务器

    这里的服务器也可以指另外一台机子,假设现在是一台新安装的Windows

    将安装完的文件复制到该机器的某个路径下:

    这里复制D:\Oracle\ODAC112030Xcopy_32bit和D:\Oracle\ODAC112030Xcopy_x64到服务器的C:\Oracle下(或者其他文件)。

    新增路径到系统环境变量PATH中,将本地编译过的程序复制到服务器,不论是针对x86编译的还是x64编译的都可以正确运行。

    6、PL/SQL Developer补充。

    在上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html中我们通过Instant Client来设置PL/SQL的首选项。现在可以把它们去掉了。因为我们已经在环境变量中设置了路径。因为PL/SQL只支持x86的OCI.DLL,所以,在设置环境路径的时候,应该把32bit的相关路径放在前面,这样就可以正确运行了。

    7、设置字符集,可以使用上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html的方法来设置字符集,也可以直接在安装的install.bat中做一下修改,再进行安装。

    以下方法只适合直接install.bat的那台机子。

    在上一篇文章中提到了在注册表中修改,这里就能用到了,在D:\Oracle\ODAC112030Xcopy_32bit\bin路径下查看oracle.key可以查到字符集放在这个位置:SOFTWARE\Wow6432Node\ORACLE\KEY_odac修改NLS_LANG为SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
    image

    8、设置tnsnames.ora

    如果不是用程序直接找的路径,而是通过系统配置寻找tnsnames.ora的,则需要在对应的路径下增加network\ADMIN\tnsnames.ora。步骤和上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html一致。

    如这里PL/SQL需要使用tnsnames.ora,则需要在C:\Oracle\ODAC112030Xcopy_32bit路径下建立network\ADMIN\tnsnames.ora,但是不需要在C:\Oracle\ODAC112030Xcopy_x64建。

    9、另外,如果是IIS中布置的程序需要通过本地访问Oracle,包括使用Oracle.DataAccess以及System.Data.OracleClient访问,可能都需要重新启动计算机后才可使用。

  • 相关阅读:
    Spring Boot Admin的介绍及使用(18)
    SpringBoot+Maven多模块项目(17)
    SpringBoot之spring.factories的用法(16)
    SpringBoot添加允许跨域(15)
    spring boot配置程热部署(14)
    SpringBoot中使用AOP(13)
    SpringBoot集成Redis(12)
    SpringBoot 防止表单重复提交-本地锁(11)
    consul
    go-micro
  • 原文地址:https://www.cnblogs.com/volnet/p/2513968.html
Copyright © 2020-2023  润新知