span8
span4
FME已经禁用了截断Spatialite表的功能,所以我需要修改一下。我希望它存在,以便其他应用程序可以在更新后读取它。
我需要截断而不是drop_and_create来用insert刷新表,因为稍后我将使用另一个transformer来执行SQLExecutor,它将从同一个sqlite数据库中的一个大表中进行选择。似乎添加了一个锁来防止删除/创建。
因此,您可能认为我可以使用SQLExecutor破解truncate,但是没有!所有的数据库操作符在FME中为spatialite禁用,因此“从表中删除”是不允许的。
没关系,我将使用Python。啊,但是现在我使用的是FME 64位,我需要使用Python3.6,这是来自Anaconda的,它没有sqlite作为ArcGISPro的标准模块,所以我的python hack也失败了。
那么,我将只支付sqlitt。exe。但是等一下,FME将它实现为sqlite_fme。dll,不是EXE。
如果我使用filegeodatabase,我可以截断表,但是我不能运行SQLExecutor,因为filegeodatabase没有SQL接口。这使得我需要读取整个表并执行databaseJoin,这将花费100倍的时间,而且对于实时应用程序来说太长了(5分钟vs 13秒)。
简单的解决方案是FME将Spatialite/Sqlite写入器升级为完全符合SQL。已经有一个2017年的老想法,因此需要一个黑客。
嗨@kimo。谢谢你提出这个问题和我们在一起。我们都知道这个电流限制的,当我们对增强的任何更新将在这里通知您。
我看到你发现和评论有关这个问题以前的一些主题:
https://knowledge.亚搏在线safe.com/questions/50230/sql-executor-and-spatialite-delete-or-drop-command.htmlhttps://knowledge.亚搏在线safe.com/idea/50358/improve-sqlexecutor-to-operate-the-same-way-on-all.html?
我们发现一个潜在的黑客是使用下面的SQL查询结构:
[我们要完成命令SQL]。[琐碎查询SQL]
例:
`DELETE FROM TABLE_1;选择“毫无意义的” FROM table_1`
希望这有所帮助。
©2019安全亚搏在线软件公司法律