Teradata没有函数replace,为了方便使用,定义了一个。其实也挺简单的,描述如下:
一、用c编写一个replace函数,挺简单,也可以在网上找到源码,编译通过,能达到目的即可。
二、运行一个bteq,将自定义函数载入。
详细描述如下:
[@more@]a、编写teradata创建自定义函数ddl:
REPLACE FUNCTION TEST.treplace (
input_string VARCHAR(16000) CHARACTER SET LATIN,
search_string VARCHAR(512) CHARACTER SET LATIN,
replace_string VARCHAR(512) CHARACTER SET LATIN)
RETURNS VARCHAR(16000) CHARACTER SET LATIN
SPECIFIC replace2LANGUAGE C
NO SQL
PARAMETER STYLE SQL
DETERMINISTIC
CALLED ON NULL INPUT
EXTERNAL NAME 'CS!replace2!replace2.c'
;
其中treplace即为自定义函数名,replace2.c为c程序文件名。
b、将上述文件保存为replacebtq(或其他任意你喜欢的名字);
c、执行bteq "logon copid/user,password" < repla