目录

Search

  1. 前言
  2. 使用转换
  3. 汇总器转换
  4. 自定义转换
  5. 自定义转换函数
  6. 数据屏蔽转换
  7. 数据屏蔽示例
  8. 表达式转换
  9. 外部过程转换
  10. 筛选器转换
  11. HTTP 转换
  12. Identity Resolution 转换
  13. Java 转换
  14. Java 转换 API 引用
  15. Java 表达式
  16. Java 转换示例
  17. 联接器转换
  18. 查找转换
  19. 查找缓存
  20. 动态查找缓存
  21. 规范器转换
  22. 等级转换
  23. 路由器转换
  24. 序列生成器转换
  25. 排序器转换
  26. 源限定符转换
  27. SQL 转换
  28. 在映射中使用 SQL 转换
  29. 存储过程转换
  30. 事务控制转换
  31. 联合转换
  32. 非结构化数据转换
  33. 更新策略转换
  34. XML 转换

转换指南

转换指南

数据类型转换

数据类型转换

Java 转换会根据 Java 转换端口类型将
PowerCenter
Developer tool
数据类型转换为 Java 数据类型。
当 Java 转换读取输入行时,它会将输入端口数据类型转换为 Java 数据类型。
当 Java 转换写入输出行时,它会将 Java 数据类型转换为输出端口数据类型。
例如,在 Java 转换中,会对 Integer 数据类型的输入端口进行以下处理:
  1. Java 转换会将输入端口的 Integer 数据类型转换为 Java 基元 Int 数据类型。
  2. 在转换过程中,转换会将输入端口的值视为 Java 基元 Int 数据类型。
  3. 当转换生成输出行时,它会将 Java 基元 Int 数据类型转换为 Integer 数据类型。
下表显示了 Java 转换是如何将
PowerCenter
Developer tool
数据类型映射到 Java 基元和复杂数据类型的:
PowerCenter 数据类型
Java 数据类型
字符
字符串
Binary
byte[]
Long (INT32)
int
Double
double
Decimal
double
BigDecimal
BIGINT
long
Date/Time
BigDecimal
long(自格林尼治标准时间 1970 年 1 月 1 日 00:00:00.000 起的毫秒数)
Developer Tool 数据类型
Java 数据类型
array*
java.util.List
bigint
long
binary
byte[]
date/time
如果启用了纳秒处理,则为具有纳秒精度的 BigDecimal
如果禁用了纳秒处理,则为具有毫秒精度的 long(自格林尼治标准时间 1970 年 1 月 1 日 00:00:00.000 起的毫秒数)
decimal
如果禁用了高精度处理,则为精度为 15 的 double
如果启用了高精度处理,则为 BigDecimal
double
double
integer
int
map*
java.util.Map
string
String
struct*
自定义的 JavaBean 类,具有适用于 struct 字段元素的 getter 和 setter
text
String
* 仅在 Spark 引擎上受支持。
在 Java 中,java.util.List、java.util.Map、String、byte[] 和 BigDecimal 数据类型为复杂数据类型。Double、int 和 long 数据类型为基元数据类型。
在 Developer tool 中,array、struct 和 map 数据类型为复杂数据类型。
Java 转换会将基元数据类型中的空值设置为零。您可以使用
在输入行
输入
选项卡上的 isNull 和 setNull API 方法将输入端口中的空值设置为输出端口中的空值。有关示例,请参阅setNull
启用高精度时,decimal 数据类型将映射到 BigDecimal。BigDecimal 不能与某些运算符结合使用,例如
+
运算符。如果 Java 代码包含的表达式使用 decimal 端口,并且该端口与这些运算符之一结合使用,Java 代码将无法编译。
启用高精度时,decimal 数据类型将映射到 BigDecimal。BigDecimal 不能与某些运算符结合使用,例如
+
运算符。如果 Java 代码包含的表达式使用 decimal 端口或具有 decimal 数据类型元素的复杂端口,并且该端口与这些运算符之一结合使用,Java 代码将无法编译。