首页建站databaselink(Oracle创建Database Link的两种方式详解)

databaselink(Oracle创建Database Link的两种方式详解)

编程之家2024-01-27105次浏览

一、1.sql server 通过db link 怎么访问oracle

一、创建sqlserver链接服务(sqlserver链接oracle)

databaselink(Oracle创建Database Link的两种方式详解)

首先sqlserver链接oracle可以通过两个访问接口:

“MSDAORA”和“OraOLEDB.Oracle”

1、“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接。通过该访问接口建立的链接服务器在进行查询oracle表(带数据类型CLOB、BLOB字段)时会报这个错误

技术分享

链接服务器""的 OLE DB访问接口"MSDAORA"返回了消息"发生了一个 Oracle错误,但无法从 Oracle中检索错误信息。"。

databaselink(Oracle创建Database Link的两种方式详解)

链接服务器""的 OLE DB访问接口"MSDAORA"返回了消息"数据类型不被支持。"。

消息 7321,级别 16,状态 2,第 1行

准备对链接服务器""的 OLE DB访问接口"MSDAORA"执行查询"select* from SYS_MESSAGE"时出错。”

链接服务器"LINK2ORACLE"的 OLE DB访问接口"MSDAORA"为列提供的元数据不一致。对象""CMCC"."OS2_GIS_CELL""的列"ISOPENED"(编译时序号为 20)在编译时有 130的"DBTYPE",但在运行时有错。

2、“OraOLEDB.Oracle”访问接口是由oracle的Oracle Probider for OLE DB驱动提供的。它解决了两个数据库类型不一致的的问题。而且如果需要使用分布式事务,必须使用它来创建链接服务器。后文会有详细介绍。

在创建之前,在SQLSERVER中,链接服务器->访问接口->OraOLEDB.Oracle->右键属性,选中"Allow inprocess"(中文为:允许进程内)

databaselink(Oracle创建Database Link的两种方式详解)

这一步是使我们选择的OraOLEDB.Oracle接口打开执行操作。如未设置会报如下错误:

“无法初始化链接服务器"null"的 OLE DB访问接口"OraOLEDB.Oracle"的数据源对象"

二、oracle需要创建dblink给什么权限

创建全局 DBLink,用户需要有创建 dblink的权限。

查询用户的dblink的权限:

select*fromuser_sys_privswhereprivilegelikeupper('%DATABASELINK%');

给需要使用 sysdba角色的用户赋权:

grantcreatepublicdatabaselinktodbusername;

使用已赋权的用户登录 PL/SQL,使用命令:

createdatabaselink数据库链接名connectto用户名identifiedby密码using'本地配置的数据的实例名';

扩展资料:

查询数据:

selectxxxFROM表名@数据库链接名;

删除 DBLink:

drop/*public*/databaselinkdblink1;

创建和删除同义词:

createorreplaceview视图名as(select字段from用户.表名@dblink1);

dropview视图名;

三、oracle 局域网之间的库 datalink怎么创建

当需要在两个Oracle库中取数据进行比较或更新时,就会用到DataLink。

建立方法如下:

Create dababase link连接名@限定词 connect to数据库用户 identified by密码 using服务名.;

建立时需要注意以下问题:

一、global_names参数

在服务器上创建远程连接,则需要根据服务器中的global_names参数情况来创建DBLink:

a.如果Global_names=true,则创建的远程连接必需设置如下:

1、创建的连接名必需是目标数据库中的global_name的值,可以通过:select* From global_name的方式进行获取。

2、如果目标数据库和发起连接的数据库在同一台机器上,则需要在创建的远程连接名后加@和限定词。其格式如上,否则不用加“@限定词”

b.如果global_names=false,则创建的远程连接需设置如下:

1、连接名可以任意取。

2、如果连接名取成了与目标数据库实例名或global_name值相同时,而且目标数据库和发起连接的数据库在同一台机器上,也必需加上连接限定词。

ANDROID ROM RAM(android ram rom试工具)linux 输入法(Linux输入法快速切换:5种实用方法)