如何在 Pentaho Spoon UI 中输入多行值?

Posted

技术标签:

【中文标题】如何在 Pentaho Spoon UI 中输入多行值?【英文标题】:How to enter a multiline value in Pentaho Spoon UI? 【发布时间】:2017-06-14 13:53:29 【问题描述】:

我现在在 windows 10 下使用来自 PDI-CE 7.0 的 Spoon 来编辑转换。

我从来没有找到一种方便的方法将多行字符串值“从剪贴板粘贴”到“数据网格”或“生成行”等简单步骤中......

有没有我错过的技巧?

以下选项有效,但不太方便:

手动编辑 ktr 文件 (!!) 使用脚本步骤(UDJC、UDJE、JS、..)生成字符串值 在 JS 步骤中使用 loadFileContent() 从文件中加载多行字符串

【问题讨论】:

数据网格有表格单元格作为值,它不是文本编辑器的好选择。不值得在那里输入多行字符串。 JS 够用了。编辑ktr文件,如果粘贴的字符串中有一些标签怎么办? 在 JS 步骤中,我们应该编码/粘贴一些 JS 代码.. 确实可以生成多行字符串值,但这不是那么方便.. 有 LoadScriptFromTab(tabName) 但不幸的是没有从引用的选项卡返回字符串(显然只是加载函数)。不能像在 Ecma6 中那样使用反引号来包装粘贴的多行文本。 ...关于编辑ktr,我主要想指出只有UI不支持多行粘贴(因为ktr和处理工作正常)。 【参考方案1】:

实际复制粘贴确实有效,因此表格小部件确实支持换行符,但它在单元格中不可见。看起来在表格单元格中绘制多行并非易事(基于 swt 示例)。在 ktr 文件中,kettle 将换行符替换为 xml 实体

所以如果你输入类似的东西

 hello\r\n
 world\r\n
 \r\n

然后你会进入ktr文件:

 hello
world


" " - 是中断的实体。如果你将这样的字符串输入到https://mothereff.in/html-entities,那么你会得到换行符。所以如果你想编辑ktr文件并输入长字符串,至少使用这样的服务来进行反向操作为了安全起见,获取字符串的转义版本。但看起来更容易只需使用复制粘贴来输入字符串。

【讨论】:

感谢您的回答,但它显然不适用于我(在 Win10 上):我将多行文本复制到剪贴板,然后将其粘贴到数据网格的目标单元格中​​,只剩下第一行(以及在 ktr 中)。如果它是多行结果(例如在预览表中),则可以将其正确复制到剪贴板。 我认为它可能有一些陷阱取决于Kettle版本(swt版本)以及使用unix或windows方式的行尾 确实,它适用于 linux 风格的 EOL。因此,可能需要转换多行字符串,但对于我的大多数用途来说这听起来是可以接受的! 它适用于我 Windows10、PDI 7.1、制表符分隔值。然后我在 ktr 和数据库存储库中找到了。

以上是关于如何在 Pentaho Spoon UI 中输入多行值?的主要内容,如果未能解决你的问题,请参考以下文章

在 Kettle/Spoon/Pentaho 中循环

第一列中的空值是不是会阻止在 Pentaho Spoon 中导入 Excel 文件?

Pentaho Spoon 转换抛出:ORA-01652:无法在表空间 TEMP 中将临时段扩展 128

如何在 Pentaho 勺子中连接字符串?

执行sql任务Pentaho Spoon 7中的常见问题

如何在 SQL/PostgreSQL/MySQL 中将“65→67→69”更改为“J7,G2,P9”?还是使用 Pentaho Data Integration (Spoon) 中的拆分字段/值映射器