Informatica 中的 SQL 转换用于在转换的中间编写或使用 SQL 查询。使用此转换,您可以插入、删除或更新数据库中的行。如果您熟悉查询,则可以使用此转换。
在这里,我们将向您展示如何使用 Informatica SQL 转换在转换中编写事务性查询,并附带一个示例。在此示例中,我们将使用 SP 源表和目标表。

Informatica SQL 转换示例
此示例展示了如何在 Informatica 中使用 SQL 转换来针对数据库运行脚本或查询。在开始配置之前,请先连接到存储库服务。
为此,请输入您在安装服务器时指定的管理控制台用户名和密码。
创建 Informatica SQL 转换源定义
成功连接后,请导航到源分析器并定义您的 Informatica 源。在此示例中,我们将使用数据库中的 Sp Source 表作为我们的源定义。请参考数据库源文章。

创建 Informatica SQL 转换目标定义
请导航到目标设计器来定义目标。在此示例中,我们将使用现有表(SP Destination)作为我们的目标定义。您可以参考“使用源定义创建目标表”文章。

创建 Informatica SQL 转换映射
要为 SQL 转换创建新映射,请导航到“映射”菜单并选择“创建..”选项。

选择“创建..”选项后,将打开一个新的“映射名称”窗口。让我提供映射名称,然后单击“确定”按钮。

将 SP Source 从“源”文件夹拖放到映射设计器。拖动源后,Power Center Designer 将自动为您创建源限定符转换(默认转换)。
创建 Informatica SQL 转换
要创建 Informatica 转换,请导航到“转换”菜单并选择“创建..”选项

选择“创建..”选项将打开“创建转换”窗口。请选择 SQL 转换,提供唯一名称,然后单击“创建”按钮。

单击“创建”按钮将弹出一个名为 Informatica SQL Transformation 的新窗口。
- 查询模式:使用此选项直接在转换中写入查询。您可以插入、删除或更新数据库中的行。
- 脚本模式:如果您的服务器查询保存在脚本文件中,则可以使用此选项。如果选择此选项,则必须传递脚本文件名。
- 数据库类型:请选择数据库类型。例如,SQL、Oracle 等。
- 静态连接:如果您希望连接是静态的,请选择此选项。
- 动态连接:选择此选项进行动态连接。
- 转换处于被动模式:默认情况下,它处于活动模式。通过选中此选项,您可以将其转换为被动模式。

对于本次演示,我们将编写一个 Select 查询。因此,我将数据库类型更改为 Microsoft SQL Server,然后选择查询模式。

单击“确定”将为您创建一个活动的 Informatica SQL 转换。

我将源定义中所有可用的字段拖放到 SQL 转换。它会自动创建一组输入和输出字段。

在 Informatica 映射编辑器中双击 SQL 转换以编辑或配置转换。在“端口”选项卡下,您可以看到从源定义输入自动生成的输出端口。

端口:这是此转换中最关键的选项卡。我们将在其中编写查询或选择脚本。在开始编写脚本之前,我将添加一个额外的字段,因为我们的目标表有一个 New Income 列。为此,请单击“新建字段”按钮。

它在输出部分添加了一个额外的列。

请重命名该列为 New Income 并更改其本机类型。接下来,更改每个输入和输出字段的本机类型以匹配源和目标定义。完成此操作后,单击查询旁边的箭头。

它会打开一个带有可用参数的编辑器。如您所见,我们使用 Select Statement 从 SP Source 表中选择年收入,并为每个员工记录添加 45999。查询是:
SELECT YearlyIncome + 45999 FROM SPSource WHERE EmpID = ?EmpID?

检查一切是否正常。请记住,我们从 Select Statement 中获取的所有数据都保存为输出,我们的输出字段是 New Income。所以,New Income = Yearly Income + 45999,其中 Emp ID = 1, 2, 3, .. 15。

接下来,将目标定义(SP Destination)从目标文件夹拖放到映射设计器。接下来,使用“自动链接..”选项将 SQL 转换输出字段连接到目标定义。

在关闭映射之前,让我们通过转到“映射”菜单栏并选择“验证”选项来保存和验证映射。
创建 Informatica SQL 转换工作流
完成映射创建后,我们需要为其创建工作流。PowerCenter Workflow Manager 提供了两种创建工作流的方法。
在此 Informatica SQL 转换示例中,我们将手动创建工作流。为此,请导航到“工作流”菜单并选择“创建”选项。

它将打开“创建工作流”窗口,用于提供唯一名称并保留默认设置。

创建工作流后,我们的下一步是为我们的映射创建会话任务。
步骤 4(a):为 Informatica 中的 SQL 转换创建会话
有两种类型的会话
对于此 Informatica SQL 转换示例,我们创建了一个不可重用会话。要创建不可重用会话,请导航到“任务”菜单并选择“创建”选项。
请为此会话提供一个唯一名称。在此,我们将其命名为 s_Employee。单击“创建”按钮后,将打开一个名为“映射”的新窗口。在这里,您必须选择要与此会话关联的映射。

双击会话任务将打开“编辑任务”窗口。在“属性”选项卡中
$Source连接值:此属性将把关系源信息存储在$Source变量中。因此,单击下方标记的箭头,然后选择Source作为源信息。

目标连接值:此属性将把关系目标信息存储在 $Target 变量中。因此,单击下面标记的箭头,然后选择下面的目标作为目标信息。

在“映射”选项卡中,我们需要配置源和目标连接。首先,让我们通过单击“源”文件夹中存在的 SQ_SPSource 源来配置源连接。
在“连接”中,单击关系类型旁边的箭头按钮,然后使用我们在上一步中创建的连接变量,即 $Source。

现在,我们需要配置目标连接。因此,单击“目标”文件夹中存在的 SPDestination。在“连接”中,单击关系类型旁边的箭头按钮,然后使用连接变量 $Target。

最后,我们需要配置 Informatica SQL 转换。因此,单击“转换”文件夹中存在的 Employee。
在“连接”中,单击关系类型旁边的箭头按钮,然后使用连接变量 $Source。这是因为我们使用了 Select Statement 从源中选择记录。

完成会话配置后,导航到“工作流”菜单,然后选择“验证”选项来验证工作流。

现在,我来启动 Informatica SQL 转换工作流。为此,请导航到“工作流”菜单并选择“启动工作流”选项。

打开 Management Studio 并输入以下查询。
