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

PL/SQL での文字列分割

    この手順をお試しください!!

    これは、説明パターンが指定されたスペースと同じで、description,phonenum,Qty のようなフローである場合に機能します

    プロシージャを作成または置換 sp_split_stras end_pos number:=0; strt_pos番号:=1; CNT番号:=0; v_desc varchar(200);begin for i in (select * from table) loop if(instr(i.description,':',1,1)=0) then dbms_output.put_line('Server Name :'||i.サーバー名); dbms_output.put_line('Description :'||substr(i.description,1,instr(i.description,'#',1,1)-2)); dbms_output.put_line('電話番号 :'||substr(i.description,instr(i.description,'#',1,1)+1,instr(i.description,'Q',-1,1)- 2-instr(i.description,'#',1,1))); dbms_output.put_line('Qty :'||substr(i.description,instr(i.description,'Q',-1,1)+4)); dbms_output.put_line(' オブジェクトの状態 :'||i.objectstate); else for J in 1..(length(i.description)-length(replace(i.description,':','')))+1 ループ IF(J=1) THEN end_pos :=instr(i.description ,':',1,1); v_desc :=substr(i.description,strt_pos,end_pos-2); ELSE end_pos :=instr(i.description,':',1,j); strt_pos :=instr(i.description,':',1,j-1); END IF; dbms_output.put_line('サーバー名:'||i.servername); dbms_output.put_line('Description :'||substr(v_desc,1,instr(v_desc,'#',1,1)-2)); dbms_output.put_line('電話番号 :'||substr(v_desc,instr(v_desc,'#',1,1)+1,instr(v_desc,'Q',-1,1)-2-instr(v_desc, '#',1,1))); dbms_output.put_line('Qty :'||substr(v_desc,instr(v_desc,'Q',-1,1)+4)); dbms_output.put_line(' オブジェクトの状態 :'||i.objectstate); CNT :=CNT+1; IF(CNT=J) THEN v_desc :=substr(i.description,strt_pos+2); ELSE v_desc :=substr(i.description,strt_pos+2,end_pos-2); END IF; END ループ;終了する場合; END LOOP;END;  


    1. mysqlルートパスワードをリセットする方法は?

    2. ヒューリスティック参加者の定期的な回復を終わらせることはありません

    3. mysqlワークベンチで複数のモデル/データベースを開く方法

    4. 地理空間クエリの続編:場所に最も近いn個のポイントを見つけます