sql - 通过 Docmd TransferDatabase 将表从 MS Access 导出到 Snowflake
问题描述
DoCmdTransfer 数据库失败并出现运行时错误 3146 ODBC -调用失败。无法执行 CREATE TABLE。此会话没有当前架构。调用“USE SCHEMA”,或使用限定名称。
DoCmd.TransferDatabase acExport, "ODBC Database", "ODBC;DSN=ODBC32-
AccessToSWF;UID=yyyy;PWD=xxxx;LANGUAGE=us_english;" & "DATABASE=test",
acTable, "WB_EXP_OUT", "WB_EXP_OUT"
我期待在测试数据库的默认模式中将表“WB_EXP_OUT”导出到雪花。我没想到会被请求架构,我不知道在代码中的哪里输入它。
解决方案
看起来您正在使用的工具使用 ODBC 驱动程序。根据您问题的标题,您似乎正在使用https://docs.microsoft.com/en-us/office/vba/api/access.docmd.transferdatabase和 Visual Basic,您使用的是 DSN 工具吗?
如果是这样,我确实找到了另一个有此错误的用户,并在 Suzy 的此评论中修复了它。https://community.snowflake.com/s/question/0D50Z00009LIzbGSAT/export-from-ms-access-to-snowflake-missing-pwd-error
FrankBullit 3 个月前 @suzy... 我有关于 docmd 方法的更新:我想我已经建立了连接,但它失败了,运行时错误 '3146' ODBC 调用失败。
无法执行 CREATE TABLE。此会话没有当前架构。
调用“USE SCHEMA”或使用限定名称。
这是代码,但我找不到有效的修复程序
DoCmd.TransferDatabase acExport, "ODBC 数据库", "ODBC;DSN=ODBC32-AccessToSWF;UID=edifolco;PWD=xxxx;LANGUAGE=us_english;" &“数据库=测试”,活动表,“WB_EXP_OUT”,“WB_EXP_OUT”
不确定您是否真的可以指定架构。
suzy.lockwood 3 个月前
嗨......这些是一些非常奇怪的错误。您是否通过数据源管理工具使用系统或用户 DSN?需要配置 DSN,然后它应该在注册表中有一个关联的条目,您可以在其中编辑其他参数。DSN 也可以具有架构或数据库参数,或者您也可以包含在注册表项中。
那有帮助吗?