Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 使用Pentaho壶将字符串转换为布尔值_Oracle_Mongodb_Pentaho - Fatal编程技术网

Oracle 使用Pentaho壶将字符串转换为布尔值

Oracle 使用Pentaho壶将字符串转换为布尔值,oracle,mongodb,pentaho,Oracle,Mongodb,Pentaho,我正在使用Pentaho水壶将Oracle数据库移动到Mongo数据库。我几乎成功地做了我想做的一切,但我还有最后一个问题 在OracleDB中,它们有一个具有两种状态的字段:Y或N,而不是一个很好的布尔值true和false。我想在转换中做一个映射,表示Y为真,N为假,但Pentaho将其转换为字符串,而不是像真和假那样 我有一个简单的方法来设置我的布尔人吗 提前谢谢 您可以使用元数据面板上的选择值步骤更改类型 而且它有效 但是,由于PDI中布尔值的字符串表示形式是Y/N以及true/fals

我正在使用Pentaho水壶将Oracle数据库移动到Mongo数据库。我几乎成功地做了我想做的一切,但我还有最后一个问题

在OracleDB中,它们有一个具有两种状态的字段:Y或N,而不是一个很好的布尔值true和false。我想在转换中做一个映射,表示Y为真,N为假,但Pentaho将其转换为字符串,而不是像真和假那样

我有一个简单的方法来设置我的布尔人吗


提前谢谢

您可以使用
元数据
面板上的
选择值
步骤更改类型

而且它有效

但是,由于PDI中布尔值的字符串表示形式是Y/N以及true/false,这取决于上下文,因此有罪的步骤可能是
Mongo DB输出

右键单击Oracle
表输入
,选择
输出字段
,然后检查字段的类型。如果它不是布尔值,请使用
选择值
对其进行转换


然后右键单击
Mongo DB输出
,选择
输入字段
,并检查字段的类型。如果它是布尔值,那么它会被静默地转换为Y/N。在这种情况下,使用
Replace In string
步骤,将Y/N转换为字符串“true”/“false”,并让Mongo DB静默地将这些特殊字符串转换为布尔值

我不熟悉MongoDB,Pentaho,或者其他任何东西。话虽如此:如果您要从Oracle转换为其他类型,并且其他类型具有布尔数据类型(Oracle没有),那么您似乎需要在接收端编写类似CASE表达式的内容。类似于:如果现有的Y/N列名为“flag”,则在flag='Y'时导入
case,然后导入true或false end
(这假设接收端将
true
false
理解为布尔常量)。必须启用“额外属性[支持布尔数据类型]'和/或数据库配置中的'支持布尔数据类型'。单击编辑,然后单击“要素列表”