如何删除' //'右侧的所有文字在oracle

时间:2017-02-28 14:37:24

标签: oracle plsql

我想编写一个程序或函数,它将从源代码中搜索//并删除//右边的所有文本

例如//这不是必需的

执行程序或功能后#34;这不是必需的"应该消失

2 个答案:

答案 0 :(得分:0)

SELECT REGEXP_REPLACE('BLA//Thi s is not required', '//.*', '' ) FROM DUAL

这给出了“BLA”

如果你需要保持斜杠,请使用:

SELECT REGEXP_REPLACE('BLA//Ths s is not required', '(//).*', '\1' ) FROM DUAL

OR

SELECT REGEXP_REPLACE('BLA//Ths s is not required', '//.*', '//' ) FROM DUAL

这给出了“BLA //”

答案 1 :(得分:0)

以下是您需要的功能:

CREATE OR REPLACE FUNCTION srting_rplc (strng VARCHAR2)
   RETURN VARCHAR2
IS
   var   VARCHAR2 (100);
BEGIN
   var := SUBSTR (strng, 1, INSTR (strng, '//') - 1);

   RETURN var;
END;

执行:

SQL> select srting_rplc('BLA//Thi s is not required') from dual;

SRTING_RPLC('BLA//THISISNOTREQUIRED')
--------------------------------------------------------------------------------
BLA