Informatica 常用组件Lookup之六 查询
PowerCenter 基于您在查找转换中配置的端口和属性来查询查找。当第一行输入到查找转换时,PowerCenter 运行一个默认的 SQL 语句。如果使用关系查找,您可以在"查找 SQL 覆盖"属性中自定义默认查询。
默认查找查询
默认查找查询包含以下语句:
- SELECT。SELECT 语句包括映射中的所有查找端口。您可以通过使用查找 SQL 覆盖属性生成 SQL 来查看 SELECT 语句。切勿在默认 SQL 语句中添加或删除任何列。
- ORDER BY。ORDER BY 语句按照列在查找转换中出现的顺序对列排序。PowerCenter 生成 ORDER BY 语句。使用查找 SQL 覆盖属性生成默认 SQL 时,您不能查看此操作。
覆盖查找查询
查找 SQL 覆盖与在源限定符转换中输入自定义查询类似。您可以覆盖关系查找的查找查询。您可以输入整个覆盖,或生成并编辑默认 SQL 语句。Designer 为查找 SQL 覆盖生成默认 SQL 语句时,它将包括查找条件中的查找/输出端口和查找/返回端口。
在以下情况中,覆盖查找查询
- 覆盖 ORDER BY 语句。对较少的列创建 ORDER BY 语句以提高性能。覆盖 ORDER BY 语句时,您必须使用备注记数法来抑制已生成的 ORDER BY 语句。
- 查找表名称或列名称含有保留字。如果查找查询中的表名称或任何列名称含有保留字,您必须确保已用引号将所有保留字括起来。
- 使用映射参数和变量。输入查找 SQL 覆盖时,您可以使用映射参数和变量。但是,Designer 不可以在查询覆盖中扩展映射参数和变量且不会验证查找 SQL 覆盖。在查找 SQL 覆盖中运行带有映射参数或变量的会话时,PowerCenter 将扩展映射参数和变量,并连接到查找数据库以验证查询覆盖。
- 查找列名称含有斜杠 (/) 字符。生成默认查找查询时,Designer 和 PowerCenter 将查找列名称中的每一个斜杠字符 (/) 替换为下划线字符。要查询含有斜杠的查找列名称,请覆盖默认查找查询,将下划线字符替换为斜杠字符,然后使用双引号将列名称括起。
- 添加 WHERE 语句。 使用查找 SQL 覆盖以添加 WHERE 语句到默认 SQL 语句。您可能需要使用此操作来减少高速缓存中的行数。将 WHERE 语句添加到使用动态高速缓存的查找转换中时,请在查找转换前使用过滤器转换。这样可以确保 PowerCenter 仅将行插入到与 WHERE 子句匹配的动态缓存和目标表中。
注:如果在 WHERE 子句中包括较大对象端口,则会使会话失败。
- 其它。在 PowerCenter 高速缓存查找行之前,如果需要从多个查找中查询查找数据,或需要修改从查找表中查询得到的数据,请使用查找 SQL 覆盖。例如,您可以使用 TO_CHAR 将日期转换为字符串。
覆盖 ORDER BY 语句
默认情况下,PowerCenter 为高速缓存的查找生成 ORDER BY 语句。ORDER BY 语句包含所有查找端口。为提高性能,您可以抑制默认的 ORDER BY 语句并输入一个带有较少列的覆盖 ORDER BY 语句。
PowerCenter 始终会生成一个 ORDER BY 语句,即使您已在覆盖中输入一个。在 ORDER BY 覆盖后加上两个破折号 "--" 以抑制生成的 ORDER BY 语句。例如,查找转换使用以下查找条件:
ITEM_ID = IN_ITEM_ID PRICE <= IN_PRICE
查找转换包括三个在映射中使用的查找端口,ITEM_ID、ITEM_NAME 和 PRICE。输入 ORDER BY 语句时,请按照端口在查找条件中的顺序输入列。您还必须用引号将所有数据库保留字括起来。在查找 SQL 覆盖中输入以下查找查询:
SELECT ITEMS_DIM.ITEM_NAME, ITEMS_DIM.PRICE, ITEMS_DIM.ITEM_ID FROM ITEMS_DIM ORDER BY ITEMS_DIM.ITEM_ID, ITEMS_DIM.PRICE --
要覆盖关系查找的默认 ORDER BY 语句,请完成以下步骤:
- 在查找转换中生成查找查询。
- 按照条件端口在查找条件中出现的顺序,输入包含这些条件端口的 ORDER BY 语句。
- 在 ORDER BY 语句后面加上两个破折号"--"作为备注记数法以抑制 PowerCenter 生成的 ORDER BY 语句。
如果在未添加备注记数法的情况下使用 ORDER BY 语句覆盖查找查询,将导致该查找失败。
注: Sybase 具有 16 列 ORDER BY 限制。如果查找转换具有 16 个以上查找/输出端口(包括查找条件中的端口),则您可能需要覆盖 ORDER BY 语句或使用多个查找转换以查询查找表。
保留字
如果任何查找名称或列名称中含有数据库保留字,如 MONTH 或 YEAR,则当 PowerCenter 对数据库执行 SQL 时,将出现数据库错误并导致会话失败。您可以在 PowerCenter 安装目录下创建和维护保留字文件 reswords.txt。PowerCenter 初始化会话时,它将搜索 reswords.txt。如果文件存在,PowerCenter Server 在对数据库执行 SQL 时会在匹配的保留字周围加上引号。
注: 保留字文件 reswords.txt 是您创建并保留在 PowerCenter 安装目录中的文件之一。当根据源、目标和查找数据库执行 SQL 时,PowerCenter 搜索此文件并在保留字两端加上引号。
覆盖查找查询的准则
覆盖查找 SQL 查询时,请遵循以下准则:
- 只可以覆盖关系查找的查找 SQL 查询。
- 配置查找转换为启用高速缓存。如果不启用高速缓存,PowerCenter 将不会识别覆盖。
- 生成默认查询,然后配置覆盖。这有助于确保在查询中包括所有查找/输出端口。如果在 SELECT 语句中添加或减去端口,将导致会话失败。
- 将一个 WHERE 子句添加到查找 SQL 覆盖时,在使用动态高速缓存的查找转换前面使用过滤器转换。这样可以确保 PowerCenter 仅插入与 WHERE 子句匹配的动态缓存和目标表中的行。
- 如果希望共享高速缓存,请为每个查找转换使用相同的查找 SQL 覆盖。
- 当您覆盖 ORDER BY 语句时,如果 ORDER BY 语句不按照条件端口在查找条件中出现的顺序包含这些条件端口,或者如果您没有使用备注记数法抑制已生成的 ORDER BY 语句,都将导致会话失败。
- 如果查找查询中的表名称或任何列名称含有保留字,您必须用引号将所有保留字括起来。
覆盖查找查询的步骤
- 在"属性"选项卡的"查找 SQL 覆盖"字段中,打开 SQL 编辑器。
- 单击"生成 SQL"以生成默认的 SELECT 语句。输入查找 SQL 覆盖。
- 连接到数据库,然后单击"验证"以测试查找 SQL 覆盖。
- 单击"确定"返回至"属性"选项卡。
Informatica 常用组件Lookup之六 查询的更多相关文章
- Informatica 常用组件Lookup之九 配置未连接的查找转换
在映射中,未连接的查找转换与管道是分开的.您可以使用 :LKP 引用限定符编写表达式以调用其它转换中的查找.未连接查找的常用用法包括: 测试表达式中某个查找的结果 基于查找结果过滤行 基于查找的结果将 ...
- Informatica 常用组件Lookup之五 转换属性
查找转换的属性标识数据库源.PowerCenter 如何处理转换,以及它如何处理高速缓存和多项匹配. 创建映射时,为每个查找转换指定属性.创建会话时,您可在会话属性中覆盖某些属性,如每个转换的索引和数 ...
- Informatica 常用组件Lookup之四 查找组件
在映射中配置查找转换时,请定义以下组件: 查找源 端口 属性 条件 元数据扩展 查找源 您可以使用平面文件或关系表作为查找源.创建查找转换时,您可以从以下位置导入查找源: 资料库中的任 ...
- Informatica 常用组件Lookup缓存之五 使用动态查找高速缓存
对于关系查找,当目标表也是查找表时,可能要配置转换以使用动态高速缓存.PowerCenter 将在处理第一个查找请求时创建高速缓存.它将根据查找条件为传递给转换的每行查询高速缓存.当您使用动态高速缓存 ...
- Informatica 常用组件Lookup缓存之四 使用不高速缓存的查找或静态高速缓存
默认情况下,在为高速缓存配置查找转换时,PowerCenter 将创建静态查找高速缓存.PowerCenter 将在处理第一个查找请求时创建高速缓存.它将根据查找条件为传递给转换的每行查询高速缓存.P ...
- Informatica 常用组件Lookup缓存之一 概述
可以配置查找转换以高速缓存查找表.PowerCenter 将在处理高速缓存查找转换中的第一个数据行时在存储器中建立高速缓存.它将根据您在转换或会话特性中配置的数量来分配高速缓存区内存.PowerCen ...
- Informatica 常用组件Lookup之八 查找高速缓存
可以配置查找转换以高速缓存查找文件或表.PowerCenter 将在处理高速缓存查找转换中的第一个数据行时在存储器中建立高速缓存.它将根据您在转换或会话特性中配置的数量来分配高速缓存区内存.Power ...
- Informatica 常用组件Lookup之七 查找条件
PowerCenter 使用查找条件来测试收到的值.这与 SQL 查询中的 WHERE 子句相似.为转换配置查找条件时,将对转换输入值和查找源或高速缓存(用查找端口代表)中的值进行比较.当您运行工作流 ...
- Informatica 常用组件Lookup之三 关系和平面文件查找
创建查找转换时,您可以选择使用关系表或平面文件作为查找源. 关系查找 使用关系表作为查找源来创建查找转换时,您可以使用 ODBC 连接到查找源并导入表定义作为查找转换的结构. 仅可对关系查找使用以下选 ...
随机推荐
- mongdb 拓展的下载地址和编译安装(php)
下载地址:https://pecl.php.net/package/mongodb 编译安装: $ tar zxvf mongodb-mongodb-php-driver-<commit_id& ...
- awk 基本函数用法
gsub函数有点类似于sed查找和替换.它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行.第一个函数作用于记录$0,第二个gsub函数允许指定目标,然而,如果未指定目标,缺省为 ...
- ubuntu16.04查看软件的安装位置
以chromium-browser为例 find命令 totoro@SWH:~$ sudo find / -name chromium-browser /usr/lib/chromium-browse ...
- [ 原创 ]学习笔记- 数据在Activity之间的传递的情况
情况一:一个Activity跳转到另一个Activity时,将第一个Activity的数据传递到第二个Activity里面. 分析:当一个界面跳转到另一个界面的同时还要讲数据传递过去,这种情况需要用I ...
- BZOJ.5329.[SDOI2018]战略游戏(圆方树 虚树)
题目链接 显然先建圆方树,方点权值为0圆点权值为1,两点间的答案就是路径权值和减去起点终点. 对于询问,显然可以建虚树.但是只需要计算两关键点间路径权值,所以不需要建出虚树.统计DFS序相邻的两关键点 ...
- hdu 4535 错排
题意:错排 链接:点我 百年难得一遇大水题 #include<cstdio> #include<iostream> #include<algorithm> #inc ...
- TSQL update 简单应用小总结
UPDATE 有两种基本的格式.一种是用静态数据来修改表,另一种是用其他表中的数据来修改表.下面是第一种格式: UPDATE #famousjaycees SET jc = 'Jhony cash', ...
- DeveloperAppleHelp
UIKit: 1.UIKit User Interface Catalog 视图 View控件 2.View Programming Guide for iOS 视图编程,用代码 构建界面. 3. ...
- Linux性能监控分析命令(三)—iostat命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof 命令介绍: i ...
- hibernate核心配置
# hibernate核心配置 注意: - hibernate.cfg.xml默认放在src目录下(这样可以自动加载该文件) - 必须配置的参数: * 数据库的四大参数和方言 - 可选配置的参 ...