我有一个脚本可以将文本文件加载到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上运行它(在OS X 10.12上运行)执行SQL脚本步骤时,它不起作用。我知道到服务器的连接正在工作,因为我可以运行其他不使用LOAD DATA LOCAL INFILE语句的查询。

我收到的错误消息说:


  ODBC错误:[实际] [MySQL]禁止加载数据本地文件


从SO和其他地方的其他答案看来,客户端也需要启用local_infile。这可以解释为什么它在一个客户端而不是另一个客户端上起作用。我已经尝试过执行此操作,但是我所看到的说明都使用了终端。我不认为Filemaker具有这样的功能-您只需在查询编辑器中输入SQL并将其发送到远程数据库即可。我不确定如何或什至可以更改客户端的配置。

有谁知道如何在Filemaker上启用它?或者,还有其他我可以做的工作吗?

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

谢谢。

最佳答案

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

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

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

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

关于mysql - 在Filemaker中加载数据本地文件问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40252420/

10-10 19:19