没有合适的资源?快使用搜索试试~ 我知道了~
随着企业业务系统的规划,多数据是必然,本文档介绍SQL跨服务器数据库查询、ORACEL跨数据查询、SQL与ORACLE间查询,是数据库交互学习的好资料
资源推荐
资源详情
资源评论
ORACLE 数据库跨数据查询
建立 DBLINK
DBLINK
1.查看 dblink
select owner,object_name from dba_objects where
object_type='DATABASE LINK';
或者
select * from dba_db_links;
2.创建 dblink
前提:
创建 dblink 的用户有对应的数据库权限
create public database link 或者 create database link
可以使用
grant create public database link,create database link to myAccount;
来授权.
create public database link dblinkname connect to username identied by
password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = database_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =servicename)
)
)';
如果在 create 之后不加 public,则创建的 dblink 就不是公共的,就只有创建者可以使用了.
补充:如何确定数据库的 servicename:
1.在 sqlplus 中使用
show parameter[s] service_names;
注意 parameter 和 parameters 都可以
2.使用
select name,value from v$parameter where name='service_names'
3.使用 db link
例如,在本机数据库上创建了一个 scott_rmthost 的 public dblink(使用远程主机的 scott 用户
连接),则用 sqlplus 连接到本机数据库,执行 select * from scott.emp@scott_rmthot 即可以
将远程数据库上的 scott 用户下的 emp 表中的数据获取到.
也可以在本地建一个同义词来指向 scott.emp@scott_rmthost,这样取值就方便多了.
4.删除
注意:用户有 create public database link 或者 create database link 权限.
drop public database link dblinkname;
SQL Server 跨数据查询
建立连接
exec sp_addlinkedserver 'ITSV', ' ', 'SQLOLEDB ', '192.168.111.129'
exec sp_addlinkedsrvlogin 'ITSV', 'false ',null, 'LC019999',
'KING1985'
查询范例 SELECT * FROM ITSV.CWBASE01.LC019999.LSBZDW
删除连接 exec sp_dropserver 'ITSV ', 'droplogins'
查看连接 exec sp_helpserver
------详解
语句
SELECT * FROM 数据库 A.dbo.表 A a, 数据库 B.dbo.表 B b WHERE a.field=b.field
"DBO"可以省略 如
SELECT * FROM 数据库 A..表 A a, 数据库 B..表 B b WHERE a.field=b.field
SqlServer 数据库:
--这句是映射一个远程数据库
EXEC sp_addlinkedserver '远程数据库的 IP 或主机名',N'SQL Server'
--这句是登录远程数据库
EXEC sp_addlinkedsrvlogin '远程数据库的 IP 或主机名', 'false', NULL, '登
录名', '密码'
--登录后,可以用以下格式操作远程数据库中的对象
select * from [远程数据库的 IP 或主机名].[数据库名].[dbo].[表名]
insert into openrowset('sqloledb','192.168.0.100';'sa';'10060','select
* from knss2009.dbo.yw_kck') select * from yw_kck
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
不同服务器数据库之间的数据操作
--创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或 ip 地址 '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '
--查询示例
select * from ITSV.数据库名.dbo.表名
--导入示例
select * into 表 from ITSV.数据库名.dbo.表名
--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV ', 'droplogins '
--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset
--查询示例
select * from openrowset( 'SQLOLEDB ', 'sql 服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表
名)
--生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql 服务器名 '; '用户名 '; '密码 ',数据库名.
dbo.表名)
--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql 服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
select *from 本地表
--更新本地表
update b
set b.列 A=a.列 A
from openrowset( 'SQLOLEDB ', 'sql 服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a
inner join 本地表 b
on a.column1=b.column1
--openquery 用法需要创建一个连接
--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或 ip 地址 '
--查询
剩余13页未读,继续阅读
资源评论
Study1985
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功