oracle与sql server2000中不在同一个服务器上的数据库数据操作的方法对比
2011-08-20 10:30
579 查看
如何操坐不在同一个数据库中的数据操作:
一。对于SQL server来讲:
1.采用创建链接服务器的方式:
(1).创建链接服务器
exec sp_addlinkedserver '要创建的链接服务器的本地名称', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
sp_addlinkedserver :创建一个链接服务器(相当于oracle中的本地注册)
exec sp_addlinkedsrvlogin '创建的链接服务器的本地名称 ', 'false ',null, '用户名 ', '密码'
sp_addlinkedsrvlogin :使用已创建的链接服务器进行登录。
(2).查询示例:
select * from [已创建的链接服务器名称].数据库名.dbo.表名
select * from openquery(已创建的链接服务器名称,'select * from 表名')
(3)。当数据库用完之后 关闭链接
--以后不再使用时删除链接服务器
exec sp_dropserver '创建的链接服务器的本地名称', 'droplogins '
sp_dropserver '将被删除的服务器名称','droplogins| null' 如果指定了droplogins 那么相关的远程及链接服务器登录也被删除
2.采用odbc的方式来进行链接(openrowset)
(1)使用openrowset进行链接
例如:
select * from openrowset('SQLOLEDB','SQL服务器名';'用户名';'密码',数据库目录.dbo.表名称)
select * from openrowset('MSDASQL','DRIVER={SQL Server};Server=远程服务器名称/IP地址;UID=用户名;PWD=密码',数据库目录.dbo.表名称);
--链接Access数据库
下面的示例从本地 SQL Server Northwind 数据库的 customers 表中,以及存储在相同计算机上 Access Northwind 数据库的 orders 表中选择所有数据
说明 下面的示例假定已经安装了 Access。
USE pubs
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) AS o
ON c.CustomerID = o.CustomerID
GO
(2) 采用opendataResource来访问远程数据库
SELECT * FROM opendatasource( 'SQLOLEDB ', 'Data Source=远程服务器名称/IP地址;User ID=用户名;Password=密码 ' ).数据库目录.dbo.表名称
二.oracle数据库中操作两个不同数据库中的两张表
在这里oracle数据库服务器使用的dblink的方式, 其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。
1、已经配置本地服务
其语法为:
CREATE DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
示例:
create public database link test connect to userInformation identified by ***** using 'orcl'
2、未配置本地服务
create database link test
connect to userInformation identified by *****
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
示例:
select * from 表名@数据库链接名
其实不难看出 第一种和第二种数据库链接没有多大的区别 第一种链接其实把配置信息放到了TNSNAMES.ORA中了,
一。对于SQL server来讲:
1.采用创建链接服务器的方式:
(1).创建链接服务器
exec sp_addlinkedserver '要创建的链接服务器的本地名称', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
sp_addlinkedserver :创建一个链接服务器(相当于oracle中的本地注册)
exec sp_addlinkedsrvlogin '创建的链接服务器的本地名称 ', 'false ',null, '用户名 ', '密码'
sp_addlinkedsrvlogin :使用已创建的链接服务器进行登录。
(2).查询示例:
select * from [已创建的链接服务器名称].数据库名.dbo.表名
select * from openquery(已创建的链接服务器名称,'select * from 表名')
(3)。当数据库用完之后 关闭链接
--以后不再使用时删除链接服务器
exec sp_dropserver '创建的链接服务器的本地名称', 'droplogins '
sp_dropserver '将被删除的服务器名称','droplogins| null' 如果指定了droplogins 那么相关的远程及链接服务器登录也被删除
2.采用odbc的方式来进行链接(openrowset)
(1)使用openrowset进行链接
例如:
select * from openrowset('SQLOLEDB','SQL服务器名';'用户名';'密码',数据库目录.dbo.表名称)
select * from openrowset('MSDASQL','DRIVER={SQL Server};Server=远程服务器名称/IP地址;UID=用户名;PWD=密码',数据库目录.dbo.表名称);
--链接Access数据库
下面的示例从本地 SQL Server Northwind 数据库的 customers 表中,以及存储在相同计算机上 Access Northwind 数据库的 orders 表中选择所有数据
说明 下面的示例假定已经安装了 Access。
USE pubs
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) AS o
ON c.CustomerID = o.CustomerID
GO
(2) 采用opendataResource来访问远程数据库
SELECT * FROM opendatasource( 'SQLOLEDB ', 'Data Source=远程服务器名称/IP地址;User ID=用户名;Password=密码 ' ).数据库目录.dbo.表名称
二.oracle数据库中操作两个不同数据库中的两张表
在这里oracle数据库服务器使用的dblink的方式, 其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。
1、已经配置本地服务
其语法为:
CREATE DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
示例:
create public database link test connect to userInformation identified by ***** using 'orcl'
2、未配置本地服务
create database link test
connect to userInformation identified by *****
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
示例:
select * from 表名@数据库链接名
其实不难看出 第一种和第二种数据库链接没有多大的区别 第一种链接其实把配置信息放到了TNSNAMES.ORA中了,
相关文章推荐
- 转:不在同一个服务器上的数据库之间的数据操作(oracle/sql server的对比)
- 不在同一个服务器上的数据库之间的数据操作
- dede数据库不在同一个服务器,数据调用方法!
- Oracle中对一个表中的数据和输入的参数对比,做出对应的操作(存储过程)
- [原创]一个可以操作多数据库服务器的事务方法
- 有2个表,结构相似,有一个字段关联,现在怎么把A表的数据添加到B表中,条件是A表不在B表的数据?? 请各位高手多多指点,是oracle的数据库
- hadoop超时解决办法context.progress()的作用 假设在map()方法中,你有一个从数据库读取大量数据的操作,是用一个循环来完成的,并且,在读完全部的数据之前,你不会有任何的数据输出
- sql脚本查询数据库表,数据,结构,约束等操作的方法
- 【初识Oracle】④数据库对表格数据进行操作(含三张练习用表)
- 不同服务器数据库之间的数据操作
- 解决:一个服务器oracle多实例有一个实例没启动,需手动启动操作指引教程
- 九、Oracle数据库之学习笔记---Oracle操作数据
- (转)JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle
- 数据库的设计决定了性能,sql server2000操作几十个G的数据很平常.
- 不同服务器数据库之间的数据操作
- 不同服务器数据库之间的数据操作
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- SQLSERVER 触发器 将一个服务器上的数据库中数据插入到另一个服务器上的数据库中怎么做
- 不同服务器数据库之间的数据操作
- 用于不同服务器数据库之间的数据操作