先说说使用mssql2k链接oracle,其实,在网上,我已经看到过太多的使用命令来创建链接数据库的方法,说实在的,那些方法我怎么试验都没用,后来还是自己琢磨出来的,方法绝对实用且可靠,多图杀猫。
1.先确认你装了oralce,至少得是客户端吧,我使用的是oralce8.0.
2.安装了oracle,那你得先试试你要登陆的oracle 是否登录的上不,这就不多说了吧,cos u are not retarded.
3.会点oracle总知道有TNSNAMES.ORA这个文件吧,用记事本打此文件,以我的配置为例:
XYJF.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 134.228.9.2)(PORT = 1521))
(CONNECT_DATA = (SID = XYJF))
)
这里,我就要用mssql2k链接xyjf这个oracle 数据库.
4.打开企业管理器,如下图所示:
在连接服务器右键新建连接服务器,且按照如图所示填写内容,注意:提供程序这一栏当然是选择oledb provider for oracle啦.
数据源,这个非常重要,指的就是你在tnsname.ora里面数据库的设置名称,你在该文件里设置成啥名,在这里就得填啥名。
另外一个大家注意:“目录”这一选项,指的就是数据库名称,这里是不可选的状态,ok,无非是一个远程oracle 数据库,我们就新建一个连接服务器而已。
5.按照如下两图所示,继续填写内容.
在这里一定要注意:与排序规则兼容,这个勾一定要勾上,要不然等你设置好了连接数据库,输入语句后运行一百年也运行不出来。
最后,点应用,确定。
6.回到企业管理器的链接服务器这里,把他点开来,点"表",或在右边列表中刷新。
如果你得到如下图这样远程数据库的列表,那么恭喜你,你已经链接成功了。
右边的列表,就是是远程oracle 数据库xyjf的列表。当然其显示的“架构”其实对应的东西就是数据库的用户名,比如上图所示的xybill,就是远程xyjf数据库中xybill用户生成的表。
7.如何查询远程的数据库呢?
只要使用下面的语句
SELECT * FROM XYJF..XYBILL.ACCT_GET 就可以了
mssql里面遵循的规则是
select * from 服务器名.数据库名.用户名.表名
而我写的语句中省略了数据库名,为啥,大家注意看上面的设置,里面设置就已经省略了数据库的设置,不清楚的看第四步。
有的时候你写的语句明明没有错误,但是就会出现比如"XXX数据元错误"之类的,我想这大概是因为mssql和oracle是相互异类数据库,总是会有点问题的。所以碰到这一问题,你只需要把语句改写成如下所示的数据就可以了:
SELECT * FROM OPENQUERY(XYJF,'SELECT * FROM XYBILL.ACCT_GET')
也就是
SELECT * FROM OPENQUERY(连接服务器名,'select * from 用户名.表名')
在查询的时候,需要注意一个非常重要的问题,就是 服务器名.数据库名.用户名.表名如果是英文,则一定要大写!
否则会报错。
U got a question with that ,just reply.
This tech blog is 100% original.
OK,IM FOCKING EXHAUSTED NOW,I'LL GET SOME FOCKING SLEEP ,I HOPE U ALL HAVE A NICE DAY.