with t1 as (select '/*-/-*-/*-*-*/a/*哈哈**-*/b/*嘿嘿*/c' as v1 from dual) select v1, regexp_replace(v1, '\/\*.+\*\/', '') as v2, regexp_replace(v1, '\/\*[^*/]+\*\/', '') as v2, regexp_replace(v1, '\/\*([^*]/|[^/])+\*\/', '') as v4 from t1
去掉视图里的注释
declare viewName VARCHAR2(50); viewSql LONG; oldStr VARCHAR(1000); newStr VARCHAR(1000); begin /*提取现视图语句*/ for cur in(select TEXT,VIEW_NAME INTO viewSql,viewName FROM USER_VIEWS) loop viewSql := cur.text; viewName := cur.VIEW_NAME; viewSql := 'CREATE OR REPLACE VIEW ' || viewName || ' AS ' || viewSql; /*规范格式*/ oldStr := ' ' || CHR(10); newStr := CHR(10); viewSql := REPLACE(viewSql, oldStr, newStr); viewSql := regexp_replace(v1, '\/\*([^*]/|[^/])+\*\/', ''); viewSql := REGEXP_REPLACE(viewSql, '--.+' || chr(10),chr(10)); EXECUTE IMMEDIATE viewSql; end loop; exception when others then dbms_output.put_line(viewName); END;