ORACLE截取字符串
每行顯示固定字符串,截取字符串
方法一:在循環裏面輸出
DECLARE
l_char VARCHAR2 (3000 )
:= 'ORACLEEB電子商務套件SSYSTEMghtest' ;
l_length NUMBER ;
l_line_char VARCHAR2 (1000 ); --每個字符
l_lengthb NUMBER ; --每個字符的字節長度,漢字變成2個
l_lengthb_total NUMBER := 0 ; --字節長度:漢字算2個
l_char_display VARCHAR2 (1000 ); --換行顯示的字符
BEGIN
l_length := length (l_char);
dbms_output.put_line( 'l_length:' ||
l_length);
FOR i IN 1 ..
l_length LOOP
SELECT substr (l_char,
i, 1) INTO l_line_char FROM dual;
--dbms_output.put_line('l_line_char:'||l_line_char);
IF lengthb (l_line_char)
= 3 THEN
--漢字
l_lengthb := 2 ;
ELSE
l_lengthb := 1 ;
END IF ;
l_lengthb_total := l_lengthb_total + l_lengthb;
l_char_display := l_char_display || l_line_char;
IF l_lengthb_total
= 12 THEN
--l_char_display
:= l_char_display || CHR(10);
--12位換行顯示
dbms_output.put_line( 'l_char_display:' ||
l_char_display);
l_lengthb_total := 0 ;
l_char_display := NULL ;
END IF ;
END LOOP ;
dbms_output.put_line( 'l_char_display:' ||
l_char_display);
END ;
輸出:
l_char_display:ORACLEEB電子
l_char_display:商務套件SSYS
l_char_display:TEMghtest
二、使用回車符
DECLARE
l_char VARCHAR2 (3000 )
:= 'ORACLEEB電子商務套件SSYSTEMghtest' ;
l_length NUMBER ;
l_line_char VARCHAR2 (1000 ); --每個字符
l_lengthb NUMBER ; --每個字符的字節長度,漢字變成2個
l_lengthb_total NUMBER := 0 ; --字節長度:漢字算2個
l_char_display VARCHAR2 (1000 ); --換行顯示的字符
BEGIN
l_length := length (l_char);
FOR i IN 1 ..
l_length LOOP
SELECT substr (l_char,
i, 1) INTO l_line_char FROM dual;
--dbms_output.put_line('l_line_char:'||l_line_char);
IF lengthb (l_line_char)
= 3 THEN
--漢字
l_lengthb := 2 ;
ELSE
l_lengthb := 1 ;
END IF ;
l_lengthb_total := l_lengthb_total + l_lengthb;
l_char_display := l_char_display || l_line_char;
IF l_lengthb_total
= 12 THEN
l_char_display := l_char_display || CHR (10 );
--12位換行顯示
l_lengthb_total := 0 ;
END IF ;
END LOOP ;
dbms_output.put_line( l_char_display);
END ;
輸出:
ORACLEEB電子
商務套件SSYS
TEMghtest
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.