Oracle擷取字串

2021-08-19 15:13:04 字數 1182 閱讀 8052

今天遇到的問題是:

我需要乙個201802281530時間格式的字串(即年月日時分),但是讀取的oracle資料庫裡只有2018-02-28 15:30:00這種格式的char型別。由於程式大都是直接呼叫其他方法,不方便在程式內操作,只能在oracle讀取時解決問題。

解決後的最終sql**為:

substr(regexp_replace(datatime,'[^0-9]+',''),1,12)
datatime即為2018-02-28 15:30:00這種格式。

這裡用到了substr方法、regexp_replace方法以及正規表示式,其實在oracle的字串操作裡,regexp_replaceregexp_substr這兩個方法都很常用,在此學習下:

有6個引數:

第乙個引數:srcstr,是要操作的字串

第二個引數:pattern,要替換掉的字串,支援正規表示式

第三個引數:replacestr,是要替換成的字串

第四個引數:position,是起始位置,即從第幾個位置開始匹配。(預設為1)

第五個引數:occurrence,標識第幾個匹配組(預設為0全部都替換掉)

第六個引數:modifier,是取值範圍:

i:大小寫不敏感;

c:大小寫敏感;

n:點號 . 不匹配換行符號;

m:多行模式;

x:擴充套件模式,忽略正規表示式中的空白字元。

有5個引數:

第乙個引數:srcstr,是要切割的字串

第二個引數:pattern,要切割掉的字串,支援正規表示式

第四個引數:position,是起始位置,即從第幾個位置開始匹配。(預設為1)

第五個引數:occurrence,標識第幾個匹配組(預設為1)

第六個引數:modifier,是取值範圍:(預設為c)

i:大小寫不敏感;

c:大小寫敏感;

n:點號 . 不匹配換行符號;

m:多行模式;

x:擴充套件模式,忽略正規表示式中的空白字元。

oracle擷取字串

格式1 substr string string,int a,int b 格式2 substr string string,int a 解釋 格式1 1 string 需要擷取的字串 2 a 擷取字串的開始位置 注 當a等於0或1時,都是從第一位開始擷取 3 b 要擷取的字串的長度 格式21 str...

oracle中擷取字串

substring 返回字元 binary text 或 image 表示式的一部分。有關可與該函式一起使用的有效 microsoft sql server 資料型別的更多資訊,請參見資料型別。語法 substring expression start length 引數 expression 是字...

oracle 分割字串 擷取字串

在我們平時的處理過程總往往會遇到要把乙個字串拆分成乙個陣列,加在 in 後面作為條件,現提供兩種方似乎。1 正規表示式分割字串 select regexp substr 2,3,4,5 1,l count stype from dual,select level l count from dual ...