我使用下面的查询来获取我的函数的DDL而不获取用户名。在我的查询中,我也得到/
斜线,我也不想看到/
。我怎样才能摆脱这个/
?
FUNCTION_NAME= "EMP"
USER_NAME="USER1"
SELECT REGEXP_REPLACE (
REPLACE (
dbms_metadata.get_ddl ('FUNCTION', '" + function_name+ @"')
, '""" + User_name + @""".')
,'^\s+', NULL, 1, 0, 'm')
FROM dual
结果:
CREATE OR REPLACE FUNCTION "EMP"
(str_in IN VARCHAR2) RETURN BOOLEAN AS
-- validating ###-##-#### format
BEGIN
IF TRANSLATE(str_in, '0123456789A','AAAAAAAAAAB') = 'AAA-AA-AAAA' THEN
RETURN TRUE;
END IF;
RETURN FALSE;
END ssn_candy;
/
预期结果
CREATE OR REPLACE FUNCTION "EMP"
(str_in IN VARCHAR2) RETURN BOOLEAN AS
-- validating ###-##-#### format
BEGIN
IF TRANSLATE(str_in, '0123456789A','AAAAAAAAAAB') = 'AAA-AA-AAAA' THEN
RETURN TRUE;
END IF;
RETURN FALSE;
END ssn_candy;
答案 0 :(得分:2)
您的正则表达式会删除每行开头的空白区域。您可以将其修改为'^(\s+|/)'
以删除行开头的斜杠。
如果您打算单独删除斜杠,也可以尝试使用TRIM函数而不是正则表达式。
trim (trailing '/' from 'source string')