因系统升级,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
二 本机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>
加载中,请稍候......