加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SqlServer链接服务器远程访问Oracle数据库

(2019-05-17 17:15:52)
标签:

sql链接服务器

远程访问

oracle数据库

杂谈

分类: 代码天地

因系统升级,PC发布文章功能暂停,预计5月17日15时恢复。已发布文章的编辑评论等其他功能正常,感谢理解。

以上是官方发博提示,官方暂停更新一个月有余,今天20190517终于可以发博了。

使用SQL链接服务器远程访问Oracle数据库

在本机上通过SQL数据库的链接服务器的方式,远程访问Oracle数据库
这样使用一个Sql的连接,就可以访问 Sql Server , Oracle , Access等多种数据库了。

条件:
      1 oracle数据库安装在其它机器上
      2 本机上安装oracle客户端
      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
   数据源: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>

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有