Anonymous PostgreSQL PL/SQL in Informatica pre/post-sql

busg9geu  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(151)

我试图在InformaticaMap中的源限定符的前SQL或后SQL中执行匿名PostgreSQL PL/SQL块。PostgreSQL PL/SQL块在“do”和“end”关键字后需要$$或$$。
在pre-sql中与匿名PostgreSQL PL/SQL块的Map如下所示:

do $$ 
begin
   raise notice '>>>>>>>>>>>>>>>>>>Test Proc';
end $$;

字符串
失败,并出现以下错误:

Database driver error...
CMN_1022 [do $$
begin
   raise notice '>>>>>>>>>>>>>>>>>>Test Proc'
FnName: Execute Direct -- [Informatica][ODBC PostgreSQL Wire Protocol driver][PostgreSQL]ERROR: VERROR; unterminated dollar-quoted string at or near "$$
begin
   raise notice '>>>>>>>>>>>>>>>>>>Test Proc'"(Position 4; File scan.l; Line 1236; Routine scanner_yyerror; ), SQLSTATE [37000]
]


我尝试了另一种形式,将文本放在$字符之间,但得到了同样的错误。我认为它将'$'解释为InformaticaMap参数,但它不是。我尝试了转义字符,单引号,双引号等,但无法正常工作。如果没有必要,我宁愿不将其作为存储过程来执行。
有什么想法吗?

cuxqih21

cuxqih211#

看起来这是解决方案.

do '
begin raise notice ''>>>>>>>>>>>>>>>>>>Test Proc''; 
end ';

字符串
此处也引用ERROR: unterminated dollar-quoted string at or near "$BODY$

相关问题