在 Filemaker 中加载数据本地 infile 问题

Load data local infile problems in Filemaker

我有一个脚本可以将文本文件加载到 Amazon RDS mysql 数据库中。它需要处理文本文件中可变数量的列并将它们存储为 JSON。这是一个包含 5 列的示例,存储为 JSON:

LOAD DATA LOCAL INFILE '/Applications/FileMaker Pro 14/containers/imports/load1.txt' INTO TABLE jdataholder (rowdatetime, @v1, @v2, @v3, @v4, @v5) SET loadno = 1, formatno = 1, jdata = JSON_OBJECT('Site', @v1, 'Nutrients', @v2, 'Dissolved_O2', @v3, 'Turbitidy', @v4, 'Nitrogen', @v5);

local_infile 在服务器上是 'ON'。该查询适用于 Sequel Pro。当我尝试在 Filemaker Pro 14 中 运行 时(运行ning on OS X 10.12)执行 SQL 脚本步骤它不起作用。我知道与服务器的连接正常,因为我可以 运行 其他不使用 LOAD DATA LOCAL INFILE 语句的查询。

我收到的错误消息是:

ODBC ERROR: [Actual][MySQL] Load data local infile forbidden

从 SO 和其他地方的其他答案来看,客户端似乎也需要启用 local_infile。这可以解释为什么它适用于一个客户端而不适用于另一个客户端。我试过这样做,但我看到的说明都是使用终端。我认为 Filemaker 没有这样的东西 - 您只需在查询编辑器中输入 SQL 并将其发送到远程数据库即可。我不确定您如何或是否可以更改客户端的配置。

有谁知道如何在 Filemaker 上启用此功能?或者,我还能做些什么来完成这项工作?

如果我 运行 从存储过程加载数据本地 infile 查询,我可以避免这种情况吗?那是我最初的计划,但是文档说加载数据 infile 步骤必须调用文字字符串,而不是变量,所以我想不出一种方法来处理可变数量的列。

谢谢。

FileMaker ExecuteSQL 可能不支持此功能。我建议使用能够 运行 终端命令的插件,然后使用该插件通过 FileMaker 在终端中执行操作。有一个具有此功能的免费插件,称为 BaseElements。下面是关于此特定功能的文档的 link。

https://baseelementsplugin.zendesk.com/hc/en-us/articles/205350547-BE-ExecuteShellCommand

如果您尝试将数据插入 MySQL table,更好的方法是使用 FileMaker ESS(外部 SQL 源),它允许您使用 MySQL、Oracle 和 FileMaker 中其他受支持的数据库。这包括能够将数据导入 ESS ( MySQL table。您可以在下面的 ESS 上查看 pdf 文档:

https://www.filemaker.com/downloads/documentation/techbrief_intro_ess.pdf