在命令行中使用 WbExport 时缺少数据和 sql 脚本文件
Posted
技术标签:
【中文标题】在命令行中使用 WbExport 时缺少数据和 sql 脚本文件【英文标题】:Data and sql script files are missing while using WbExport in command line 【发布时间】:2019-10-30 10:01:19 【问题描述】:我在从命令行运行包含 WbExport(使用 Select 语句)的 sql 脚本时遇到一个问题。目标文件夹中缺少 txt 文件和导入 sql 脚本 命令提示符显示语句已执行,但我认为执行命令时 select 语句未运行。
在不使用 Select 语句的情况下,我得到了所需的输出文件,但导入 SQL 脚本中缺少列名,这就是我在 WbExport 中尝试 Select 语句方法的原因。
命令:
java -jar sqlworkbench.jar -profile=New_profile -script=cmd_test.sql
sql脚本(cmd_test.sql):
WbExport
-type=text
-file='D:\Migration\CMD_TEST\employee.txt'
-delimiter='~'
-quotechar='^'
-encoding=UTF8
-quoteCharEscaping=duplicate
-formatFile=postgres
-header=true
-decimal='.'
-dateFormat='yyyy-MM-dd'
-replaceExpression='(\n|\r\n)' -replaceWith='';
select * from ces_prj_raymond_poc.dbo.employee; ------------I think this statement is not executing.
txt数据文件和表的导入sql脚本
【问题讨论】:
已解决。显然微软的驱动程序存在问题。运行 WbSetDBconfig metadata.retrieval.wildcards=false;当您连接到 SQL Server 时,然后尝试导出数据。 【参考方案1】:这已交叉发布到 SQL Workbench/J support group
问题在于新的 Microsoft JDBC 驱动程序对某些 JDBC API 调用的参数处理不正确,并且不再支持通配符。 SQL Workbench/J 在调用之前转义标准 SQL 通配符,例如DatabaseMetaData.getColumns()
。显然,从 7.4 版开始的 Microsoft JDBC 驱动程序不再使用 LIKE 语句,因此方法调用(使用转义通配符)不会返回任何内容。
可以通过设置配置属性在 SQL Workbench/J 中禁用转义通配符。通过手动编辑 workbench.settings 并添加:
workbench.microsoft_sql_server.metadata.retrieval.wildcards=false
在编辑文件之前,请确保 SQL Workbench/J 已关闭。
这也可以在不重新启动应用程序的情况下进行配置。
当连接到 SQL Server 数据库时,这也可以在 SQL Workbench/J 中通过运行以下 Workbench 命令来完成:
WbSetDBconfig metadata.retrieval.wildcards=false;
【讨论】:
以上是关于在命令行中使用 WbExport 时缺少数据和 sql 脚本文件的主要内容,如果未能解决你的问题,请参考以下文章
GLEW + cmake 链接失败“未定义对符号 glDrawElements 的引用”+“命令行中缺少 DSO”
//usr/lib/x86_64-linux-gnu/libcrypto.so.1.1:添加符号时出错:命令行中缺少 DSO