原文地址:
使用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
           
 
 
二 本机Sql Server数据库上 配置 Oralce 服务链接器
 
 1 启动SQL数据库
 2 展开 数据库 -- 服务器对象 -- 链接服务器
 3 右击 链接服务器 -- 新建链接服务器, 弹出配置属性画面, 
   在“常规”中的 链接服务器:svrtsm1wind
         这是引用链接服务器时将使用的名称,就是后面在程序中使用的链接名称
   服务类型选择 其他数据源
   访问接口:Microsoft OLE DB Provider for Oracel
   产品名称:Oracle
   数据源:svrtsm1wind  就是上面步骤一创建的Oracle 服务的网络名称。
 

 4 在“安全性”中,本地登录输入 sa  远程用户 wcadmin 远程密码:wcadmin
 
 
 
 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>
 

SQLSERVER远程链接Oracle数据库的更多相关文章

  1. SQLServer 远程链接MySql数据库详解

    SQLServer 远程链接MySql数据库详解 by:授客 QQ:1033553122 测试环境: Microsoft Windows XP Professional 版本2000 Service ...

  2. Oracle 远程链接oracle数据库服务器的配置

    远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...

  3. 历尽磨难之PL/SQL链接Oracle数据库

    说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...

  4. 有关.NET链接Oracle数据库,使用连接池pooling=true时问题

    .net链接oracle数据库时,当链接字符串中pooling=true时,视图结构变更时程序报错问题,还请高手指教 现象: 链接字符串: 注意:这里pooling=true: 测试视图: 执行的SQ ...

  5. Oracle客户端+PLSQLDeveloper实现远程登录Oracle数据库

    Oracle数据库功能强大.性能卓越,在造就这些优点的同时,也导致Oracle占内存比较多.针对这个问题,我们如何做到取其精华去其糟粕呢? 解决方案:我们可以在局域网内的服务器上安装庞大的Oracle ...

  6. .net远程连接oracle数据库不用安装oracle客户端

    asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...

  7. .net远程连接oracle数据库不用安装oracle客户端的方法

    .net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...

  8. PL/SQL Developer 远程连接Oracle数据库

    PL/SQL Developer 远程连接Oracle数据库 网上搜了很多方法,这个可行! 1.    配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安装了oracle ...

  9. 关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

    用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理 ...

随机推荐

  1. PHP课程环境安装总结文档

    phpStudy的安装 1.找一个硬盘根目录,比如这里我使用E盘,在E盘根目录创建一个php的文件夹,进入php文件夹,如下图所示 2.在步骤1的php文件夹下再建立一个文件夹php_dev,如下图所 ...

  2. Unexpected token o in JSON at position 1 报错原因

    写在前面的话这个问题在之前做项目时碰到过一次,当时按照网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么原因. 可是这次又碰到了,所以这次 ...

  3. 惠普打印机和扫描仪修复医生 HP Print and Scan Doctor

    https://support.hp.com/cn-zh/topic/printscandoctor-printing-problems http://ftp.hp.com/pub/printers/ ...

  4. PHP过狗webshell编写过程

    0x1 先上图: 0x2 编写过程 这里必须强调一下我内心的感觉,小阔爱前两天也研究了过狗的一句话了,然后我突然觉得大家都在进步,我研究点啥呢?不如也试试以前因为觉得自己不懂代码,而不会研究的免杀sh ...

  5. pytorch如何先初始化变量,然后再赋值

    下面是定义初始化 #初始化输入的张量 - torch.empty是返回一个包含未初始化数据的张量 self.input = torch.empty(size=(self.opt.batchsize, ...

  6. 【BIGEMAP一键离线地图服务】

    地址:http://www.bigemap.com/offlinemaps/ 首页 离线地图 代码示例 项目案例 开发文档 关于我们     [BIGEMAP一键离线服务] 1.快速搭建离线地图服务2 ...

  7. 深入学习c++--智能指针(二) weak_ptr(打破shared_ptr循环引用)

    1. 几种智能指针 1. auto_ptr: c++11中推荐不使用他(放弃) 2. shared_ptr: 拥有共享对象所有权语义的智能指针 3. unique_ptr: 拥有独有对象所有权语义的智 ...

  8. 【PHP】 解决array_filter会过滤0 false的问题

    定义和用法 array_filter() 函数用回调函数过滤数组中的元素. 该函数把输入数组中的每个键值传给回调函数.如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组.数组键名保持不 ...

  9. 利用postman生成各种编程语言的代码

    原文来源:https://learning.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets/ 在Post ...

  10. Glide升级到4.x版本遇到的问题

    Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency ...