【发布时间】:2017-12-08 20:26:40
【问题描述】:
我想从 Oracle DB 表中选择所有记录,其中部件号与存储在 CSV 文件中的部件号列表相匹配。在 Knime 中实现此功能的最佳方法是什么?
【问题讨论】:
我想从 Oracle DB 表中选择所有记录,其中部件号与存储在 CSV 文件中的部件号列表相匹配。在 Knime 中实现此功能的最佳方法是什么?
【问题讨论】:
首先,使用CSV Reader 或File Reader 节点 - 后者通常是更好的选择,但请查看 CSV 阅读器的文档以防它更符合您的要求 -
如果工作流在服务器或批处理环境中使用并且输入文件结构在不同调用之间发生变化,则使用此节点。特别是,这包括可变数量的输入列。
和
注意:如果您只使用 KNIME 的桌面版本,并且您的工作流程不打算在批处理或服务器环境中使用,请使用文件阅读器节点。文件阅读器节点具有更多配置选项,并在节点配置期间(在对话框中)扫描输入文件时猜测有意义的默认设置。
首先将 csv 文件读入 KNIME 表
然后,使用Database Looping 节点 - 您需要建立与数据库的连接,然后修改默认的 SQL 语句
SELECT * FROM <table_name> WHERE <table_column> IN ('#PLACE_HOLDER_DO_NOT_EDIT#')
通过将<> 中的占位符替换为数据库中零件编号的正确表名和列名称,并从底部Column Selection 设置中的 csv 文件中的表格中选择零件编号列Loop Settings下的节点配置窗口。为了提高效率,您几乎肯定会希望将 No of Values per Query 设置增加到更大的数字,例如250 或 500 - 您将需要试验您的数据库可以承受的范围,因为 SQL 语句的最大长度是有限制的,这将通过将 #PLACE_HOLDER_DO_NOT_EDIT# 替换为您的部件号的串联来建立
【讨论】: