使用 Informatica Cloud 将 Csv 的字符串日期值映射到 mySql 数据库中的列
Map String date value of a Csv to a column in mySql database using Informatica Cloud
我正在进行数据集成项目以在 mySql 中创建数据仓库。我有几个 Csv/flat 文件要摄取到 Informatica Cloud 中,这些文件将填充 mySql 数据库中的目标 table(目标 table 已创建)。
Csv 文件包含与日期时间相关的列,但它们是字符串格式 (MM/DD/YYYY HH:MM),我无法通过 Informatica Cloud 将它们传递到 mySql 数据库table秒。 mySql 数据库中的列格式为 YYYY-MM-DD HH:MM:SS,因为数据类型是日期时间。
我尝试了不同的策略,将目标列的数据类型保持为 datetime,有时是 varchar。
我在进行不同更改的不同尝试中遇到以下错误。
*Transformation [Expr_DSS_0010LY0I000000000002_1] had an error evaluating output column [SystemModstamp_OUT]. Error message is [<<Expression Error>> [TO_DATE]: invalid string for converting to Date... t:TO_DATE(u:TO_CHAR(t:TO_DATE(u:'5/30/2013 12:26',u:'mm/dd/yyyy hh:mi'),u:'yyyy-mm-dd hh:mm'),u:'MM/DD/YYYY HH24:MI:SS')].
转换 [Expr_DSS_0010LY0I000000000002_1] 在评估输出列 [CreatedDate_OUT] 时出错。错误消息是 [<> [TO_DATE]: 转换为日期的字符串无效... t:TO_DATE(u:'6/24/2008 18:23',u:'mm/dd/yyyy hh24:mi:ss')].
转换 [Expr_DSS_0010LY0I000000000002_1] 评估输出列 [CreatedDate_OUT] 时出错。错误消息是 [<> [TO_DATE]: 转换为日期的字符串无效... t:TO_DATE(u:TO_CHAR(t:TO_DATE(u:'6/24/ 2008 18:23',u:'mm/dd/yyyy hh24:mi'),u:'YYYY-MM-DD hh:mm:ss'),u:'MM/DD/YYYY HH24:MI')].*
我也尝试了与 Informatica Cloud (Csv datetime) 相关的文档,但没有得到任何具体的解决方案。
如果有人能提供帮助,我将非常高兴。
提前致谢。
一个 TO_DATE 应该可以工作
TO_DATE(input_date_field,'mm/dd/yyyy hh24:mi')
我刚刚自己解决了完全相同的问题。
这个没有什么好办法,我就解释一下我是怎么做的:
基本上我将日期列视为电源中心的字符串。 IE。
我将所有日期列的目标定义仅在 PC 中更改为 varchar
。
SQ,期望其属性的所有内容都是字符串。
mysql DB 中的物理定义仍然是 datetime
。
对我来说这很有效。希望它也适合你。祝你好运!!
我正在进行数据集成项目以在 mySql 中创建数据仓库。我有几个 Csv/flat 文件要摄取到 Informatica Cloud 中,这些文件将填充 mySql 数据库中的目标 table(目标 table 已创建)。
Csv 文件包含与日期时间相关的列,但它们是字符串格式 (MM/DD/YYYY HH:MM),我无法通过 Informatica Cloud 将它们传递到 mySql 数据库table秒。 mySql 数据库中的列格式为 YYYY-MM-DD HH:MM:SS,因为数据类型是日期时间。
我尝试了不同的策略,将目标列的数据类型保持为 datetime,有时是 varchar。
我在进行不同更改的不同尝试中遇到以下错误。
*Transformation [Expr_DSS_0010LY0I000000000002_1] had an error evaluating output column [SystemModstamp_OUT]. Error message is [<<Expression Error>> [TO_DATE]: invalid string for converting to Date... t:TO_DATE(u:TO_CHAR(t:TO_DATE(u:'5/30/2013 12:26',u:'mm/dd/yyyy hh:mi'),u:'yyyy-mm-dd hh:mm'),u:'MM/DD/YYYY HH24:MI:SS')].
转换 [Expr_DSS_0010LY0I000000000002_1] 在评估输出列 [CreatedDate_OUT] 时出错。错误消息是 [<> [TO_DATE]: 转换为日期的字符串无效... t:TO_DATE(u:'6/24/2008 18:23',u:'mm/dd/yyyy hh24:mi:ss')]. 转换 [Expr_DSS_0010LY0I000000000002_1] 评估输出列 [CreatedDate_OUT] 时出错。错误消息是 [<> [TO_DATE]: 转换为日期的字符串无效... t:TO_DATE(u:TO_CHAR(t:TO_DATE(u:'6/24/ 2008 18:23',u:'mm/dd/yyyy hh24:mi'),u:'YYYY-MM-DD hh:mm:ss'),u:'MM/DD/YYYY HH24:MI')].*
我也尝试了与 Informatica Cloud (Csv datetime) 相关的文档,但没有得到任何具体的解决方案。
如果有人能提供帮助,我将非常高兴。
提前致谢。
一个 TO_DATE 应该可以工作
TO_DATE(input_date_field,'mm/dd/yyyy hh24:mi')
我刚刚自己解决了完全相同的问题。 这个没有什么好办法,我就解释一下我是怎么做的:
基本上我将日期列视为电源中心的字符串。 IE。
我将所有日期列的目标定义仅在 PC 中更改为 varchar
。
SQ,期望其属性的所有内容都是字符串。
mysql DB 中的物理定义仍然是 datetime
。
对我来说这很有效。希望它也适合你。祝你好运!!