1.安装mysql数据库的ODBC驱动,mysql-connector-odbc-3.51.23-win32.msi(其中*是版本号),下载并安装。
2.在Mysql中创建数据库实例。
3.打开控制面板 -- 管理工具 -- 数据源ODBC,在用户DSN中添加一个MySQL ODBC 3.51数据源。
4.在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqlDNS(也可以自己随便命名,只要在后面导入数据的时候选择正确的数据源名字就行);然后输入服务器Server,用户User,密码Password,输入正确后选择要导入的数据库,Database选择你需要导入的数据库。在连接选项connect options中根据需要设置MySql使用的端口port和字符集Character Set。
注:字符集一定要和Mysql服务器相对应,如果Mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到Sql Server可能会出现问号乱码。
5.打开sql server企业管理器,选择该数据库,单击右键选择所有任务 -- 导出数据。
6.‘选择数据源’为默认,‘选择目的’为刚刚安装的mySQL数据源,用户/系统DSN为MysqlDNS。在‘指定表复制或查询’中选择‘从源数据库复制表和视图’,在‘选择源表和视图’里,选择需要导入的表,即可将数据从MSSQLServer数据库导入到MySql数据库中。
案例描述:在dbname数据库中创建dbname1数据库视图。
步骤(红字标识的是可替换的内容):
1.连接数据库
connect to dbname user username using password
2. 创建WRAPPER 的 DDL 语句
CREATE WRAPPER "DRDA"
LIBRARY 'db2drda.dll'
OPTIONS (DB2_FENCED 'N')
3. 创建SERVER 的 DDL 语句
CREATE SERVER tempserver
TYPE DB2/UDB
VERSION 8.1
WRAPPER DRDA
AUTHORIZATION "username1"
PASSWORD "password1"
OPTIONS
(DBNAME 'dbname1')
上面指定的dbname1是远程数据库的名称,username1和password1是它的用户名及密码。
4. 创建USER MAPPING 的 DDL 语句
CREATE USER MAPPING FOR db2admin
SERVER tempserver --此处tempserver名称就是步骤3创建的server
OPTIONS
(REMOTE_AUTHID 'dbname1',
REMOTE_PASSWORD 'password'
)
5. 创建跨库视图
CREATE NICKNAME PERSON FOR tempserver.PERSON
create view SYS_PERSON as
select *
from PERSON
需要注意,上面语句中NICKNAME和VIEW的名称不能相同。
说白了,就是无法补获数据库抛出的异常,数据库不支持,但是你的后台代码可以支持抛出异常,并且想办法处理。可以这样,在你后台代码中,将你的union all的试图查询,改成多个sql的单试图查询,这样对每个sql查询做异常抛出处理,发现有异常,可能是网络原因断了,也可能是超时了,反正后台代码捕获到异常就不管这个试图了,继续下一个。麻烦是麻烦点,但是肯定可以实现,另外,因为是多个远程库的试图,读取速度也是一个大问题吧,改成多次查询,也可以用异步方式每个试图单独读取,前台异步显示,还能提升用户体验。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)