原文地址:
使用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 远程链接MySql数据库详解
SQLServer 远程链接MySql数据库详解 by:授客 QQ:1033553122 测试环境: Microsoft Windows XP Professional 版本2000 Service ...
- Oracle 远程链接oracle数据库服务器的配置
远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...
- 历尽磨难之PL/SQL链接Oracle数据库
说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...
- 有关.NET链接Oracle数据库,使用连接池pooling=true时问题
.net链接oracle数据库时,当链接字符串中pooling=true时,视图结构变更时程序报错问题,还请高手指教 现象: 链接字符串: 注意:这里pooling=true: 测试视图: 执行的SQ ...
- Oracle客户端+PLSQLDeveloper实现远程登录Oracle数据库
Oracle数据库功能强大.性能卓越,在造就这些优点的同时,也导致Oracle占内存比较多.针对这个问题,我们如何做到取其精华去其糟粕呢? 解决方案:我们可以在局域网内的服务器上安装庞大的Oracle ...
- .net远程连接oracle数据库不用安装oracle客户端
asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...
- .net远程连接oracle数据库不用安装oracle客户端的方法
.net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...
- PL/SQL Developer 远程连接Oracle数据库
PL/SQL Developer 远程连接Oracle数据库 网上搜了很多方法,这个可行! 1. 配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安装了oracle ...
- 关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用
用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理 ...
随机推荐
- 生成模型 VS 判别模型 (含义、区别、对应经典算法)
从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布.能够学习到数据生成的机制 ...
- nginx配置静态资源与动态访问分离【转】
在前面的博客中<说说 NGINX 的配置及优化>的 2.5 小节里面,提到 location 模块是 nginx 中用的最多的,也是最重要的模块,负载均衡.反向代理.虚拟域名等都与它相关. ...
- ActiveMQ处理模式
一.PTP处理模式(Queue) 消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息. 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消 ...
- crontab 使用日期时间命名重定向文件
使用月份命名 0 12 * * * sh /tmp/test.sh >> "/tmp/$(date +"\%Y-\%m").log" 2>&a ...
- EDAS Serverless & Kubernetes SLB LVS Nginx
分布式缓存负载均衡的规则处理:虚拟节点对一致性哈希的改进 - yanghuahui - 博客园https://www.cnblogs.com/yanghuahui/p/3755460.html EDA ...
- linux下apache安装ssl步骤
制作证书: 参考:linux下运用opensll制作ssl证书 生成三个证书 server.crt .server-ca.crt.server.key 安装openssl tar -xzvf open ...
- failure during conversion to COFF:file invalid or corrupt
用Visual Studio 2010编译一个C++工程时突然遇到下面这个编译错误:fatal error LINK1123:failure during conversion to COFF:fil ...
- flutter Dismissible 可以在拖动时隐藏的widget
import 'package:flutter/material.dart'; class DismissedAppPage extends StatefulWidget { @override St ...
- VPB编译日志1
1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Release x64 ------1> Checking Build System1> CMake ...
- RabbitMQ 入门教程(PHP版) 第二部分:工作队列(Work queues)
工作队列 在第一篇教程中,我们已经写了一个从已知队列中发送和获取消息的程序.在这篇教程中,我们将创建一个工作队列(Work Queue),它会发送一些耗时的任务给多个工作者(Works ). 工作队列 ...