【问题标题】:Informatica, Create new table with input from another tableInformatica,使用来自另一个表的输入创建新表
【发布时间】:2018-07-08 02:14:40
【问题描述】:

我想使用另一个表中的值在 informatica 中创建一个新表。 例如,如果我有一个包含变量名称、变量类型等字段的表。我想以某种方式在我的 create 语句中使用这两个值来创建一个新表。 任何想法如何去做。谢谢!

例子:

Input table rows:
First_Name, varchar
Second_Name, varchar
ID, int

创建后的输出表应具有类型为 varchar 的 First_name 列, 类似的东西

Create Table new1,
(First_name varchar,
Second_name varchar,
ID int)

【问题讨论】:

  • 你的真实表的tge结构是什么?
  • 你的意思是输入表被真实表吗?
  • 是的。请张贴输入表的结构
  • 哦,是的,所以输入表的列提供了 -- 变量名称 -- 变量类型 例如:第一行 - First_Name, varchar
  • 我认为你需要使用动态SQL。签出此链接。 marketplace.informatica.com/solutions/…

标签: sql informatica


【解决方案1】:

好的,我的理解是您的列具有创建表所需的属性,例如 Column_name 和 Column_DataType。

您可以执行以下步骤:

第 1 步:规范化数据并将行更改为列。

第 2 步:连接新创建的列以创建您需要的查询。

第 3 步:将新创建的查询存储在映射变量中。

第 4 步:将上述映射变量分配给会话中的工作流变量。

第五步:在session的pre sql/post sql中写入上面的worklow变量,查询就会被执行,表就会被创建。

【讨论】:

  • 嘿@Prashant,感谢您的回复,这对您有很大帮助!
【解决方案2】:

所以你所需要的只是一个类似的 sql CREATE TABLE TABLE2 AS SELECT * FROM TABLE1 WHERE 1=2;

这个不需要映射逻辑

【讨论】:

  • 嘿@Daniel,谢谢你的回复。我尝试实施解决方案,但无法弄清楚所以改变了用例
猜你喜欢
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2020-09-17
  • 2012-06-13
相关资源
最近更新 更多