1. 如何同步ORACLE和sqlserver的数据
有时候项目开发的需要,必须将sqlServer中的某县表同步到Oracle数据库汇总,有其他系统来读取这些数据,不同数据库类型之间的数据同步我们可以使用连接服务器和sqlAgent来实现。加入我们泽凯有一个和听合同管理系统,其中有表contract和contract_project是需要同步到一个MIS系统中的ORACLE,那么我们可以按照以下步骤实现数据的同步
1.在oracle数据库中建立对应的contract和contract_project表,需要同步那些数据字段我们就建立那些字段到oralce表中
需要注意哦的是oralce的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系,我们可以再sqlServer下运行:
SELECT *
FROM msdb.dbo.MSdatatype_mappings
来查看sqlServcer和oralce数据库的的类型类型对应
2.建立连接服务器,我们将oralce系统作为SQLserver的链接服务器加入到SQLserver中
有时候我们需要在sqlsercer下访问另外一个sqlserver数据库上的数据或者访问其他oracel数据库就上的数据吗,想要完成这些操作,我首先要创建一个数据库链接。
数据库链接能够让本地的一个sqlservwer登录用户勇摄到远程的一个数据库服务器上,并且像操作本地数据库一样,那么怎样创建数据库链接?
创建一个sqlserver对应的oracle的数据库链接,
2. 怎么使用SQLSERVER链接服务器访问数据库
怎么使用SQLSERVER链接服务器访问数据库
步骤1:打开企业管理器,如下。
2
步骤2:选择数据库,安全性,点击新建链接服务器。
3
步骤3:选择链接服务器属性,常规,输入名称:TEST,选择ORACLE数据库提供程序,输入名称、数据源。
4
步骤4:进行安全性设置。本地登录,选择SQLServer数据库登录用户,远程登录用户和密码,输入远程连接数据库的用户和密码,选择用此安全上下文进行,输入远程登录用户和密码。
5
步骤5:点击TEST链接服务器下的表,我们可以访问ORACLE数据库的表了。
注意:产品名称要和所链接的服务器相对应,使用ORACLE数据库就要输入ORACLE,使用SQLServer就输入SQLServer。
3. 如何用sqlserver连oracle
安装好oracle客户端,并配置好TNS信息。
配置好odbc连接信息,sql server肯定不能直接调用oracle的客户端去连接的,只能通过odbc的方式间接的去连,先要打开odbc界面。
在Linked Servers下面会看到ORA_ARWEN,大功告成了。
4. jdbc为什么用oracle的驱动可以连接sqlserver的数据库
前期准备,具体包括
1]
下载安装SQL Server(本文以SQL Server 2012为例)
2]
下载Microsoft JDBC Driver for SQL Server
3]
下载并且安装集成开发环境 Eclipse IDE for Java EE Developers(可选)
准备用于查询的数据库和数据表
打开SQL Server Manage Studio打开SQL Server 2012
新建一个名为UniversityDB的数据库
新建一个名为course的表并且插入如下记录
5. 如何使用Oracle SQLDeveloper 中连接MS SQLServer和MySQL数据库
如何使用Oracle SQLDeveloper
中连接MS SQLServer和MySQL数据库
一、连接至MySQL数据库
1.下载mysql的jdbc驱动, [url]http://dev.mysql.com/downloads/[/url] 免费,嘿嘿。
2.解压zip文件(我下载的版本是mysql-connector-java-5.1.5),我们要用的是mysql-connector-java-5.1.5-bin.jar文件。
/** 添加MySQL JDBC驱动的方法
a、将这个jar文件放在你的
\Tomcat6.0\lib下(Tomcat6版本)
\Tomcat5.5\commom\lib(Tomcat5.5或者5.0的版本)
b、也可以通过配置环境变量classpath,修改。
c、如果用的是Eclipse(MyEclipse),JB,NB可以导入包。
注意:这个文件可以放到3个不同的位置,作用范围也不同:
如果是linux系统:
/usr/java/jdk/jre/lib/ext——————所有Java应用
/usr/local/resin/lib—————————所有JSP/Servlet应用
网站根目录/WEB-INF/lib 单个网站
如果放到resin的目录,重新启动resin即可:/etc/init.d/resin restart
如果是Win2000系统,放到类似的目录,如:
D:\jdk\jre\lib\ext D:\resin\lib 网站根目录\htdocs\WEB-INF\lib
*/
3.运行SQL developer,选择菜单“Tools->Preferences”,在打开的窗口中选择“database->Third
Party JDBC Drivers”然后点击“Add Entry...”,选择 mysql-connector-java-5.1.5-bin.jar
(从你解压的文件夹中选择),点击确定。
4.然后新建连接,一切OK
二、连接到Ms SQL Server数据库
1.首先要到 [url]http://sourceforge.net[/url] 下载
net.sourceforge.jdbc.driver,本人使用的版本是 jtds-1.2.2.jar
2.将压缩包中的jtds-1.2.2.jar复制到“<sql
developer>/sqldeveloper/lib”文件夹或任意文件夹,也可以只解压缩在本地也可 :)
3.运行SQL developer,选择菜单“Tools->Preferences”,在打开的窗口中选择“database->Third
Party JDBC Drivers”然后点击“Add Entry...”,选择 jtds-1.2.2.jar
(从你解压的文件夹中选择),点击确定。
4.然后新建连接,一切OK。
/** 如果连接不上SQL SERVER可能需要执行以下步骤:
1. 把JtdsXA.dll 到<SQL SERVER 2000>\bin目录中
2. 以 sa login SQL Query Analyzer, 执行 instjtds.sql
(执行一次失败可以执行多次,嘿嘿)
3. 做好一切后, 打开 sqldeveloper.exe, 创建新的Connection
4. 在 ORACLE SQL Developer中, 点File->New->选中 Database
Connection,点确定
在弹出的UI中选择"SQLServer"页签, 再填写相关的Loginner及Pwd和Connection Name后
点一下Retrieve database按钮, 然后在其旁边的下接框中选取想要连接的Database就可以
了
5. 注意:密码一项不能为NULL, 密码为NULL的loginner需要更改密码后才能连接
*/
6. 如何在oracle中取到sqlserver数据库中的数据
试试用DBLink连到另外一个库上:
-- Create database link
create public database link 名字
connect to user identified by password
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = PORT)))(CONNECT_DATA = (SERVICE_NAME = SID)))';
使用时候 可以使用select × from TB名@DBLink_Name
7. oracle 数据库和SQL Server数据库如何实现相互通信
sqlserver可以使用linkserver实现访问oracle;
oracle可以使用database link实现访问sqlserver;
这样访问对方就像访问本地数据库一样。
8. 如何连接SQL Server与Oracle数据库
telnet
指令,远程连接sqlserver数据库所在机器,然后通过用户名密码就可以连上了
9. 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)