【发布时间】:2020-07-19 19:25:29
【问题描述】:
我有:
红帽服务器 6.9 和 oracle 11g
windows server 2012 与 sql server 2014
navicat 10
现在我已经可以在 sql server 中连接到 oracle。
使用 Navicat,Connetc to Sql Server,同时从 sql server 和 oracle 中选择。
以下 sql 语句有效:
select emp.Code, emp.Name, dpt.name
from employee emp --sql server
left join Ocla..DBName.department dpt on dpt.code=emp.dept_code --oracle
我想做相反的事情,但我做不到:
使用 Navicat,连接到 Oracle
select emp.Code, emp.Name, dpt.name
from department --oracle
left join SqlServer..MyDb.employee emp on emp.dept_code=dpt.code --sql server
uname -a
Linux XXX 2.6.32-696.el6.x86_64
cat /etc/*release
Red Hat Enterprise Linux Server release 6.9 (Santiago)
sqlplus 系统/密码@oracle SQL> 从 v$version 中选择 *;
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
...
[root@XXX ~]# curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
[root@XXX ~]# ACCEPT_EULA=Y yum install msodbcsql17
[root@XXX ~]# ACCEPT_EULA=Y yum install mssql-tools
[root@XXX ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
[root@XXX ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
[root@XXX ~]# source ~/.bashrc
[root@XXX ~]# yum install unixODBC-devel
[root@XXX ~]# vi /etc/odbc.ini
[root@XXX ~]# sqlcmd -S ip_address -U username -P 'password' -W -Q 'SELECT Name FROM MsSqlDb.dbo.Employee'
(在 sql server 数据库中列出员工姓名)
好的,连接似乎有效。但是如何选择ms sql表和oracle表一起呢?
我做了一个文件,但是不知道怎么用:
[root@XXX ~]# vi /etc/odbc.ini
[MsSqlDb]
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so.2.1
Description=MSSQL Database
Trace=Yes
Server=192.168.1.10
Port=1433
Database=MyDb
我花了一整天的时间学习......
【问题讨论】: