1
我想使用select查詢單獨實現下面的代碼片段o/p。有沒有可能不使用正則表達式?使用SQL僅顯示字符串中重複的字符數
Character Count when string input is dynamic.
DECLARE
str VARCHAR2(255);
lv_val NUMBER;
lv_char CHAR(1);
lv_unq VARCHAR2(255);
BEGIN
str:= :p_string;
FOR i IN 1..length(str)
LOOP
lv_val := 0;
lv_char := SUBSTR(str,i,1);
IF instr(lv_unq,lv_char)>0 THEN
NULL;
ELSE
lv_unq := lv_unq||lv_char;
lv_val := ((LENGTH(str) - LENGTH(REPLACE(replace(str,' ',''), lv_char, '')))/LENGTH(lv_char));
--select ((length(str) - LENgth(REPLACE(str, lv_char, '')))/LENgth(lv_char)) into lv_val FROM dual;
DBMS_OUTPUT.PUT_LINE('Character '||lv_char || ' is repeated :'||lv_val||' times in the string '||str);
END IF;
END LOOP;
END;
如果您顯示示例字符串和預期輸出會更好。 – Noel 2014-12-05 14:40:20