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>
     
  • 相关阅读:
    PHP获取当前页面完整url地址,包括参数的函数
    研究在SAE上搭建最新wordpress
    CentOS6.5 编译安装lnmp环境
    cried me a river--kristinia debarge
    Bad Day -- Daniel Powter
    Back to December -- Taylor Swift
    英语单词的偏旁部首之常见前缀(一)
    21 Guns -- Green Day
    影子
    BNUOJ 1037 精神控制
  • 原文地址:https://www.cnblogs.com/Bokeyan/p/11603419.html
Copyright © 2011-2022 走看看