我正在尝试创建一个输入输入(字符数据(并替换一组特定字符的函数。
到目前为止,我创建的功能是以下
CREATE FUNCTION name_of_func(input VARCHAR(4000)
RETURN VARCHAR(4000) IS
BEGIN
return replace(replace(replace(replace(replace(input, '', '\'), CHR(10), 'n'), CHR(13) || CHR(10), 'n'), CHR(13), 'n'),'"', '"');
END name_of_func;
如何将此功能汇编?
您无法在函数定义中指定参数的大小:
SQL> CREATE OR REPLACE FUNCTION name_of_func(input VARCHAR)
2 RETURN VARCHAR IS
3 BEGIN
4 return replace(replace(replace(replace(replace(input, '', '\'), CHR(10), 'n'), CHR(13) || CHR(10), 'n'), CHR(13), 'n'),'"', '"');
5 END name_of_func;
6 /
Function created.
SQL> select name_of_func('dfghjk') from dual;
NAME_OF_FUNC('DFGHJK')
--------------------------------------------------------------------------------
dfghjk
SQL>
您不能在函数声明中指定变量大小,此外,您需要交换替换的顺序,以便在单独处理n
或r
之前替换rn
。
CREATE FUNCTION name_of_func(
input VARCHAR2
) RETURN VARCHAR2
IS
BEGIN
return replace(
replace(
replace(
replace(
replace( input, '', '\'),
CHR(13)||CHR(10),
'n'
),
CHR(10),
'n'
),
CHR(13),
'n'
),
'"',
'"'
);
END name_of_func;