SUBSTR 函式詳解

2022-07-16 14:42:16 字數 934 閱讀 8945

這個**塊執行之後螢幕上會顯示什麼?

begin

dbms_output.put_line ('-3,2='||substr ('abdefg', -3, 2));

dbms_output.put_line ('-7,2='||substr ('abdefg', -7, 2));

end;

/(a) 

未處理的異常:

ora-01426: numeric overflow

(b) 

-3,2= -7,2=

(c) 

-3,2=ef -7,2=

(d) 

-3,2=ed -7,2=

(e) 

-3,2=ef

-7,2=ab

答案:c

解答:1.dbms_output.put_line ('-3,2='||substr ('abdefg', -3, 2));

substr ('abdefg', -3, 2)的第二個引數為-3,即從倒數第三位開始查詢,第三個引數為2,即擷取兩位字元。故結果為ef

2.dbms_output.put_line ('-7,2='||substr ('abdefg', -7, 2));

substr ('abdefg', -7, 2)的第二個引數為-7,超出要查詢字串的長度則返回null,不論第三個引數要擷取多少位。

對於第二條語句的回答在實際驗證後參考了2樓的回答。官方文件上竟然對這種超出查詢長度的情況進行解釋。

另外補充一點:

substr ('abdefg', -7, 2),substr ('abdefg', 7, 2)

substr()函式的第二個引數的值不論正負,只要超出所要查詢字串的長度,結果皆為null。

substr ('abdefg', 5, -1)

substr()函式的第三個引數為負數,結果也為null。

substr 函式 詳解及應用

substr的函式格式 俗稱 字元擷取函式 格式1 substr string string,int a,int b 格式2 substr string string,int a 解析 格式1 1 string 需要擷取的字串 2 a 擷取字串的開始位置 注 當a等於0或1時,都是從第一位開始擷取 ...

Oracle中的substr 函式詳解案例

1 substr函式格式 俗稱 字元擷取函式 格式1 substr string string,int a,int b 格式2 substr string string,int a 解釋 格式11 string 需要擷取的字串 2 a 擷取字串的開始位置 注 當a等於0或1時,都是從第一位開始擷取 ...

ORACL instr 函式 substr函式

oracle函式instr用法 在oracle plsql中,instr函式返回要擷取的字串在源字串中的位置。只檢索一次,就是說從字元的開始到字元的結尾就結束。語法如下 instr 源字串,目標字串,起始位置,匹配序號 string1 源字串,要在此字串中查詢。string2 要在string1中查...