在命令行中使用 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

需要创建 GPA 计算器才能在命令行中运行

在命令行中编译库时出错

SQL Workbench WbExport 到 Redshift 的两个位置

python项目输出到sys和命令行中的不一样