关于从两个数据库不同的表中读取数据问题???

关于从两个数据库不同的表中读取数据问题???,第1张

创建dblink分为两个步骤: 1.建立本地服务名 2.-- Create database link create database link TEST.US.ORACLE.COM connect to user identified by pwd using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) '曾经参考语句: CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘数据库连接字符串’数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义. 数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样 数据库全局名称可以用以下命令查出 SELECT * FROM GLOBAL_NAME查询远端数据库里的表 SELECT …… FROM 表名@数据库链接名附带说下同义词创建: CREATE SYNONYM同义词名FOR 表名CREATE SYNONYM同义词名FOR 表名@数据库链接名

1.如果是同一服务器:

假设 另一个数据库名为'数据库B',并且当然用户对两个数据库都有对应权限

select into [table] from [数据库B].[所有者].[表名]

2.如果不在同一服务器

select into [table] from opendatasource('sqloledb','data source=服务器名或IPuser id=登陆名password=口令').数据库B.表名

在执行的时候,要注意两个表的标示要写完整:数据库名.用户名.表名

例如:

insert into db1.yonghu1.bm

select * from db2.yonghu2.bm

db1和db2是数据库名,yonghu1和yonghu2是数据库的用户名,bm是表名。

SQL查询两个表中不同数据的步骤如下:

我们需要准备的材料分别是:电脑、sql查询器。

1、首先,打开sql查询器,连接上相应的数据库表,以查询c1表和c2表的name字段不同为例。

2、点击“查询”按钮,输入:

select c1.`name` from c1 left join c2 on c1.`name`=c2.`name` where c2.`name` is null

union select c2.`name` from c2 left join c1 on c1.`name`=c2.`name` where c1.`name` is null。

3、点击“运行”按钮,此时不同的name都被查询出了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9988235.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存