zoukankan      html  css  js  c++  java
  • SQLSERVER远程链接Oracle数据库

    原文地址:
    使用SQL链接服务器远程访问Oracle数据库
     
    在本机上通过SQL数据库的链接服务器的方式,远程访问Oracle数据库
    这样使用一个Sql的连接,就可以访问 Sql Server , Oracle , Access等多种数据库了。
     
    条件:
          1 oracle数据库安装在其它机器上
          2 本机上安装oracle客户端(如果是新装的客户端,必须重启电脑才能选择 Oracle Provider for OLE DB)
          3 本机安装SQL数据库
     
    对于 SQL建立链接服务器的方法,详细参见以下博文
     
    一 本机电脑上Oracle 客户端服务配置
     
     1 在电脑上安装Oracle 客户端
     2 创建Oracle 客户端服务
     
      开始 -- Oracle - OraClient10g_home1 -- 配置和移植工具 -- Net Manager
     
     3 创建服务名
       左侧栏 展开到  Oralce Net配置 -- 本地  -- 服务命名 。
       右击创建一个名为: svrtsm1wind 服务名
     
    4 配置远程的地址
      右侧栏,
        服务标识:
             服务名:wind   就是远程机器上Oracle中一个数据库的名称
        地址配置:
    协议:tcp/ip
            主机名:svrbbdb2 就是远程主机的名称
            端口号:1521
     
      将来就能通过 svrtsm1wind 远程访问 机器svrbbdb2 上的数据库 wind,端口号为1521
               SqlServer链接服务器远程访问Oracle数据库
     
     
    二 本机Sql Server数据库上 配置 Oralce 服务链接器
     
     1 启动SQL数据库
     2 展开 数据库 -- 服务器对象 -- 链接服务器
     3 右击 链接服务器 -- 新建链接服务器, 弹出配置属性画面, 
       在“常规”中的 链接服务器:svrtsm1wind
             这是引用链接服务器时将使用的名称,就是后面在程序中使用的链接名称
       服务类型选择 其他数据源
       访问接口:Microsoft OLE DB Provider for Oracel 或 Oracle Provider for OLE DB (如果是新装的客户端,必须重启电脑才能选择)
       产品名称:Oracle
       数据源:svrtsm1wind  就是上面步骤一创建的Oracle 服务的网络名称。
     
    SqlServer链接服务器远程访问Oracle数据库



     4 在“安全性”中,本地登录输入 sa  远程用户 wcadmin 远程密码:wcadmin
     
    SqlServer链接服务器远程访问Oracle数据库
     
     
     5 使用此安全上下文建立连接 远程用户 wcadmin 使用密码:wcadmin
       
         注意: wcadmin就是远程机器上Oracle的数据库的用户和密码
     
     6 右击 刚建立的  svrtsm1wind -- 测试连接, 直到成功为止
     
     
    三 C#中有关操作数据库的语句
     
      以下使用的就是 Sql Server 中创建的链接服务器 svrtsm1wind
     1 插入语句
        string strinsert = string.Format("insert into openquery(svrtsm1wind,'select name,age from tb') values('{0}',{1})", FLHAO, 4);
        DbHelper.ExecuteSql(strinsert);
     
     2 修改语句
        string strupdate = string.Format("update openquery(svrtsm1wind,'select name,age from tb ') set age={0} where name='{1}'", 5, FLHAO);
        DbHelper.ExecuteSql(strupdate);
     
     3 删除语句
       StringBuilder strSql = new StringBuilder();
       strSql.Append("delete from openquery(svrtsm1wind,'select * from tb') where id=1");
       int rows = DbHelper.ExecuteSql(strSql.ToString());
     
     
    4 查询语句
     
           string strSql = "select * from openquery(svrtsm1wind,'select max(id) as xuhao from tb');";
           DataTable dt = DbHelper.Query(strSql).Tables[0];
     
     
     
     5 操作类
     
      public partial class DbHelper
        {
     
            /// 数据库连接字符串
            private static string m_connectionString = null;
     
            public static string ConnectionString
            {
                get
                {
                    if (m_connectionString == null)
                    {
                        m_connectionString = WebConfigurationManager.ConnectionStrings["OracleConnection"].ToString();
                    }
                    return m_connectionString;
                }
                set
                {
                    m_connectionString = value;
                }
            }
     
     
            public static int ExecuteSql(string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(ConnectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            int rows = cmd.ExecuteNonQuery();
                            return rows;
                        }
                        catch (System.Data.SqlClient.SqlException E)
                        {
                            connection.Close();
                            throw new Exception(E.Message);
                        }
                    }
                }
            }
     
     
           public static DataSet Query(string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(ConnectionString))
                {
                    DataSet ds = new DataSet();
                    try
                    {
                        connection.Open();
                        SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                        command.Fill(ds, "ds");
                    }
                    catch (System.Data.SqlClient.SqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    return ds;
                }
            }
     
     
      }
     
     
    四 配置 web.config,针对自己的Sql数据库
     
      自己电脑 my_pc上SQL的一个数据库 my_sql_db 的连接OracleConnection ,通过它就可以远程访问Oracle
     
    < ?xml version="1.0"?>
    < configuration>
       < connectionStrings>
        < add name="OracleConnection" connectionString="server=my_pc;uid=sa;pwd=;database=my_sql_db;Pooling=true;"/>
        < /connectionStrings>
     < /configuration>
     
  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/Bokeyan/p/11603419.html
Copyright © 2011-2022 走看看