1

以下のクエリを使用して、ユーザー名を取得せずに関数の 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;
4

1 に答える 1

2

正規表現は、各行の先頭にある空白を削除します。に変更して'^(\s+|/)'、行頭のスラッシュを削除できます。

スラッシュのみを削除する場合は、正規表現の代わりに TRIM 関数を試すこともできます。

trim (trailing '/'  from 'source string')
于 2013-09-29T06:00:54.670 に答える