我有一个脚本将文本文件加载到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 ERROR:[Actual] [MySQL]加载数据本地infile禁止
从SO和其他地方的其他答案看来,客户端也需要启用 local_infile
. 这可以解释为什么它适用于一个客户端而不是另一个客户端 . 我看到所有人都使用终端了 . 我不知道你不知道如何改变客户端的配置 .
有谁知道如何在Filemaker上启用它?或者,我还能做些什么才能使这项工作成功?
如果我从存储过程运行加载数据本地infile查询,我可以避免这种情况吗?这是我原来的计划,但文档说负载数据infile步骤必须调用文字字符串,而不是变量,所以我想不出办法处理可变数量的列 .
谢谢 .
1 回答
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