【问题标题】:Data Migration from MS Access to Oracle-sql Developer using ODBC link使用 ODBC 链接从 MS Access 到 Oracle-sql Developer 的数据迁移
【发布时间】:2019-08-15 11:20:28
【问题描述】:
我正在将数据从 Microsoft Access 2013 迁移到 Oracle-SQL Developer(Oracle 客户端 12.1)。我正在使用 ODBC 链接,我可以迁移我的表,但数据类型的转换不正确。事实上,所有数据类型都重新转换为 VARCHAR2(例如,NUMBER(Access) 变为 VARCHAR2(Oracle))。
我该如何解决?有什么方法可以显式转换类型吗?
谢谢
【问题讨论】:
标签:
ms-access
odbc
oracle-sqldeveloper
database-migration
type-mismatch
【解决方案1】:
您可以分两步完成,首先迁移到 MS SQL 服务器。您可以使用免费的 Express Edition 和免费的 Access to MS SQL 迁移工具,该工具允许您手动将 MS Access 类型映射到 MS SQL Server 类型。在 Oracle-SQL 中找出 MS SQL Server 类型迁移到什么应该相当容易,这样您就可以在第一步进行必要的映射。
【解决方案2】:
有几种方法。
一种方法是在 Oracle 中构建表结构(使用 Oracle 设计工具)。然后链接到 Access 中的那个 oracle 表。
您现在可以在 Access 中运行附加查询以将表从 Access 发送到 Oracle。结果将是您选择的数据类型映射。您甚至可以使用 Access 查询 bulder 构建这样的追加查询。
另一种方法是将数据从 Access 发送到 Oracle。你现在没有提到你是如何做到的。但是,如果您使用以下格式的传输数据库命令,大多数数据类型将会并且确实可以正确转换:
Sub SendToSQL()
Dim strLocalTable As String
Dim strSQLTable As String
Dim strSQLDataBase As String
strSQLDataBase = "test3"
strLocalTable = "tblFood"
strSQLTable = "tblFood"
Dim strODBC As String
strODBC = "ODBC;DRIVER=SQL Server;SERVER=ALBERTKALLAL-PC\SQLEXPRESS;Trusted_Connection=Yes;DATABASE="
strODBC = strODBC & strSQLDataBase
DoCmd.TransferDatabase acExport, "ODBC Database", _
strODBC, acTable, strLocalTable, strSQLTable
End Sub
上面应该发送+在Oracle中创建表,当你做上面的时候你应该保留“大部分”正确的数据类型。
当然,上面的例子使用了一个 SQL server 连接字符串,你当然可以用一个 oracle 替换上面的连接字符串。