oracle访问sqlserver
㈠ 如何用sqlserver连oracle
第一步 安装好oracle客户端,并配置好TNS信息
先配置好oracle的TNS连接信息.这个跟正常情况使用oraclep完全一样
ORCL=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=123.456.176.42)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
)
)
第二步 配置odbc信息
配置好odbc连接信息,sql server肯定不能直接调用oracle的客户端去连接的,只能通过odbc的方式间接的去连.在你平时敲cmd的地方敲入odbc打开下面界面.你先去driver那地方看下有oracle的driver了不.装好了oracle的客户端的话肯定就会有的.
然后选user DSN,点Add ,选择上一个画面中看到的oracle driver.
出现这页面后,在Data Source Name随便输入一个名字,这个名字就要后面sql server要用到的.TNS Service Name的下拉列表中就是oracle中配置好的TNS信息,如果你开始没有配置的话这里就为空的.你选一个TNS名字后,可以点下test connection验证下看连接上了不.
第三步 在sql server中配置
在前面创建好odbc数据源后就可以在sql server中配置了啊.先打开management studio.在server objects下面有个Linked Servers,选中它并右击new linked server.打开如下页面.在linked server中输入一个名字,随便取的,在后面执行sql时会用到这名字.provider就选Oracle Provider for OLE DB. proct name就填oracle
Data source就是你开始配置odbc时取的名字.其他地方就不用管了.然后再点下Security会弹出另一个页面,在此页面最下面的地方输入用户名和密码,然后点OK。
㈡ 本地oracle里写了个存储过程,需要去取用别的服务器上sqlserver数据库里的数据,用dblink能否实现
可以的,首先要在oracle上安装oracle的透明网关才能访问sqlserver数据库,安装配置成功后,访问sqlserver库是就像访问oracle内部dblink一样
㈢ 如何通过代理服务器访问oracle数据库
做端口映射,在代理服务器上安装端口映射工具,例如PortMap。然后进行配置,把代理服务器的数据库端口映射到数据库服务器的数据库端口上。例如sqlserver是1433,oracle是1521.
这样你访问代理服务器的数据库端口就等于访问数据库服务器的对应端口了。
为了更加安全,你还可以在客户端上设置使用非默认的端口访问代理服务器,然后在代理服务器上把你指定的端口映射到数据库服务器的数据库端口。比如在代理服务器上把8000端口映射到服务器1433端口,然后在客户端上配置为使用8000端口来访问数据库。这样你就可以通过代理服务器的8000端口来连接sqlserver数据库了。
㈣ oracle 直接访问sqlserver
1、在安装了ORACLE9i Standard Edition或者ORACLE9i Enterprise Edition的windows机器上(IP:192.168.0.2), 产品要选了透明网关(Oracle Transparent Gateway)里访问Microsoft SQL Server数据库
$ORACLE9I_HOME\tg4msql\admin下新写initpubs.ora和initnorthwind.ora配置文件.
initpubs.ora内容如下:
HS_FDS_CONNECT_INFO="SERVER=SQLSERVER_HOSTNMAE;DATABASE=pubs"
HS_DB_NAME=pubs
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
initnorthwind.ora内容如下:
HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=Northwind"
HS_DB_NAME=Northwind
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
$ORACLE9I_HOME\network\admin 下listener.ora内容如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test9)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = test9)
)
(SID_DESC=
(SID_NAME=pubs)
(ORACLE_HOME=d:\Oracle\Ora92)
(PROGRAM=tg4msql)
)
(SID_DESC=
(SID_NAME=northwind)
(ORACLE_HOME=d:\Oracle\Ora92)
(PROGRAM=tg4msql)
)
)
重启动这台做gateway的windows机器上(IP:192.168.0.2)TNSListener服务.
(凡是按此步骤新增可访问的SQL Server数据库时,TNSListener服务都要重启动)
2、ORACLE8I,ORACLE9I的服务器端配置tnsnames.ora, 添加下面的内容:
pubs =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = pubs)
)
(HS = pubs)
)
northwind =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = northwind)
)
(HS = northwind)
)
保存tnsnames.ora后,在命令行下
tnsping pubs
tnsping northwind
出现类似提示,即为成功
Attempting to contact (DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)
(PORT = 1521))) (CONNECT_DATA = (SID = pubs)) (HS = pubs))
OK(20毫秒)
Attempting to contact (DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)
(PORT = 1521))) (CONNECT_DATA = (SID = northwind)) (HS = northwind))
OK(20毫秒)
设置数据库参数global_names=false。
设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。global_names=true则要求, 多少有些不方便。
oracle9i和oracle8i都可以在DBA用户下用SQL命令改变global_names参数
alter system set global_names=false;
建立公有的数据库链接:
create public database link pubs
connect to testuser identified by testuser_pwd using 'pubs';
create public database link northwind
connect to testuser identified by testuser_pwd using 'northwind';
(假设SQL Server下pubs和northwind已有足够权限的用户登陆testuser,
密码为testuser_pwd)
访问SQL Server下数据库里的数据:
select * from stores@pubs;
...... ......
select * from region@northwind;
...... ......
3、使用时的注意事项
ORACLE通过访问SQL Server的数据库链接时,用select * 的时候字段名是用双引号引起来的。
例如:
create table stores as select * from stores@pubs;
select zip from stores;
ERROR 位于第 1 行:
ORA-00904: 无效列名
select "zip" from stores;
zip
-----
98056
92789
96745
98014
90019
89076
已选择6行。
用SQL Navigator或Toad看从SQL Server转移到ORACLE里的表的建表语句为:
CREATE TABLE stores
("stor_id" CHAR(4) NOT NULL,
"stor_name" VARCHAR2(40),
"stor_address" VARCHAR2(40),
"city" VARCHAR2(20),
"state" CHAR(2),
"zip" CHAR(5))
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
TABLESPACE users
STORAGE (
INITIAL 131072
NEXT 131072
PCTINCREASE 0
MINEXTENTS 1
MAXEXTENTS 2147483645
)
/
总结:
WINDOWS下ORACLE9i网关服务器在$ORACLE9I_HOME\tg4msql\admin目录下的initsqlserver_databaseid.ora
WINDOWS下ORACLE9i网关服务器listener.ora里面
(SID_DESC=
(SID_NAME=sqlserver_databaseid)
(ORACLE_HOME=d:\Oracle\Ora92)
(PROGRAM=tg4msql)
)
UNIX或WINDOWS下ORACLE8I,ORACLE9I服务器tnsnames.ora里面
northwind =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = sqlserver_databaseid)
)
(HS = sqlserver_databaseid)
)
sqlserver_databaseid一致才行.
来自(http://www.enet.com.cn/article/2004/0212/A20040212285219.shtml)
㈤ 如何从SQLServer到Oracle实现服务器连接
工具/原料
SQLSERVER数据库
企业管理器]链接服务器
方法/步骤
1
步骤1:打开企业管理器,如下。
2
步骤2:选择数据库,安全性,点击新建链接服务器。
3
步骤3:选择链接服务器属性,常规,输入名称:TEST,选择ORACLE数据库提供程序,输入名称、数据源。
4
步骤4:进行安全性设置。本地登录,选择SQLServer数据库登录用户,远程登录用户和密码,输入远程连接数据库的用户和密码,选择用此安全上下文进行,输入远程登录用户和密码。
5
步骤5:点击TEST链接服务器下的表,我们可以访问ORACLE数据库的表了。
注意:产品名称要和所链接的服务器相对应,使用ORACLE数据库就要输入ORACLE,使用SQLServer就输入SQLServer。
㈥ Oracle连接到SqlServer,如何实现呢
直接用oracle的工具去连接sqlserver的数据库是不行的,他们都是不同的数据库程序了
并且2种数据库在sql语法,数据类型和内置函数方面都是存在差异的
㈦ 如何用sqlserver连oracle
安装好oracle客户端,并配置好TNS信息。
配置好odbc连接信息,sql server肯定不能直接调用oracle的客户端去连接的,只能通过odbc的方式间接的去连,先要打开odbc界面。
在Linked Servers下面会看到ORA_ARWEN,大功告成了。
㈧ 1.sql server 通过db link 怎么访问oracle
一、创建sqlserver链接服务(sqlserver链接oracle)
首先sqlserver 链接oracle可以通过两个访问接口:
“MSDAORA” 和“OraOLEDB.Oracle”
1、“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接。通过该访问接口建立的链接服务器在进行查询oracle表(带数据类型CLOB、BLOB字段)时会报这个错误
技术分享
“
链接服务器""的 OLE DB 访问接口 "MSDAORA" 返回了消息 "发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。"。
链接服务器""的 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" (中文为:允许进程内)
这一步是使我们选择的OraOLEDB.Oracle接口打开执行操作。如未设置会报如下错误:
“无法初始化链接服务器 "null" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的数据源对象"
㈨ 如何将Oracle数据库中的一张表导入到SqlServer中
看你上面说的方法应该是用ODBC,数据源是指你配置的oracle访问名,首先你要安装有oracle客户端(如果你是在安装了
oracle数据库
的机器上操作就不需要再安装oracle客户端了),然后用Net
Configuration
Assistant
配置好你要访问的oracle数据库的访问名。该访问名就是上面你要填的数据源。你可以到oracle安装目录下,找到tnsnames.ora文件,里面记录了你配置的oracle数据库访问名。比如我的数据库是10G的,该文件在目录D:\oracle\proct\10.2.0\db_1\NETWORK\ADMIN
\tnsnames.ora
里面你可以找到类似这样的东西
你配的访问名
=
(
DESCRIPTION
=
(ADDRESS
=
(PROTOCOL
=
TCP)(HOST
=
数据库的IP地址或机器名)(PORT
=
1521))
(CONNECT_DATA
=
(SERVER
=
DEDICATED)
(SERVICE_NAME
=
数据库的SID)
)
)
㈩ oracle如何远程连接sqlserver数据库
telnet 指令,远程连接sqlserver数据库所在机器,然后通过用户名密码就可以连上了