sql >> データベース >  >> RDS >> Oracle

文字列で正規表現パターンを検索し、OracleSQLで各オカレンスをそれ自体の派生として置き換えます。

    正規表現ではありませんが、問題が発生します。

    select  xmlcast( xmlquery('for $w in tokenize($text," ") return
        if(fn:matches($w,"[0-9]{1,3}")) then (xs:decimal($w)+$offset) else ($w)'
                    passing 'i want to increase those numbers 20 and 15' as "text", 5 as "offset" returning content) as varchar2(1000))
      from dual;
    

    解決策は、テキスト内の整数を探しています。 10進数の場合、内部正規表現を拡張する必要があります。

    \d および[:digit:] xmlqueryではサポートされていません



    1. Postgres-テーブル名をパラメータとして渡し、結果をファイルに保存します

    2. MySQLのJSON列の最大長

    3. MySQLで行を列に動的に転置する方法

    4. Oracleの日付に序数標識を追加する