Informatica编码到SQL

时间:2015-10-26 21:55:23

标签: sql sql-server database informatica

我正在尝试将以下Informatica代码翻译为等效的SQL脚本。我有点陷入困境,因为我对Informatica不熟悉,并会感谢任何帮助。

原始的信息代码如下:

LTRIM(RTRIM(SUBSTR(COV_REINS_CONCAT_BK,11, INSTR(COV_REINS_CONCAT_BK, '|',1,3)-INSTR(COV_REINS_CONCAT_BK, '|',1,2)-1 ))) || 'C' 

4 个答案:

答案 0 :(得分:1)

select LTRIM(RTRIM(SUBSTR(COV_REINS_CONCAT_BK,11,INSTR(COV_REINS_CONCAT_BK,'|',1‌​,3)
-INSTR(COV_REINS_CONCAT_BK,'|',1,2)-1 )))||'C' from TABLE;

上面的脚本在Oracle中可以正常工作。请将表替换为您的表名。

答案 1 :(得分:0)

使用occurrence参数扩展大量使用 INSTR 函数的表达式变得越来越困难。

也许在MS-SQL数据库中创建一个支持occurrence参数的INSTR等效函数会更容易。了解如何创建dbo.INSTR函数here。 在同一站点上,您还可以看到table具有从Oracle到MS-SQL的更多功能等价物。

然后评论中的表达变得更容易翻译:

LTRIM(RTRIM(SUBSTRING(COV_REINS_CONCAT_BK,11,dbo.INSTR(COV_REINS_CONCAT_BK,'|',1‌​,3)
-dbo.INSTR(COV_REINS_CONCAT_BK,'|',1,2)-1 )))+'C' 

这里SUBSTR成为 SUBSTRING ,INSTR成为 dbo.INSTR 并连接||改为+。

答案 2 :(得分:0)

SUBSTR()和instr()函数来自Informatica转换语言。恕我直言,它起源于Oracle和MSSQL / Sybase函数名称中的函数名称。这就是为什么它不直接转换为两个而是相似的原因。联机帮助中对这些功能进行了很好的记录。您需要检查INSTR()函数中的开关是否区分大小写等,以确保可以在其他工具中正确编写它们的并行。数字可能会转换为不同的东西,在某些Informatica函数中,可以省略结尾参数,例如在SUBSTR()函数中,这意味着SUBSTR()将从编号位置到字符串的末尾生效。的长度。 Informatica中端口的类型也会影响结果,尽管在这种情况下,组合功能最后会进行修剪。

答案 3 :(得分:-1)

SUBSTR()和INSTR()函数不是MS SQL Server函数。我猜测代码片段是Oracle的PL / SQL。尝试使用http://www.dba-oracle.com/oracle_news/2005_12_16_sql_syntax_differences.htm

等资源