Firebird/StoredProc [Replace String]

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Firebird/StoredProc [Replace String]

Mesaj gönderen gkimirti »

Kod: Tümünü seç

CREATE PROCEDURE P_STRING_REPLACE (
    STR VARCHAR(500) CHARACTER SET WIN1254,
    OLD_STR VARCHAR(50) CHARACTER SET WIN1254,
    NEW_STR VARCHAR(50) CHARACTER SET WIN1254)
RETURNS (
    SONUC_STR VARCHAR(500))
AS
DECLARE VARIABLE TMP_BEG VARCHAR(50);
DECLARE VARIABLE TMP_END VARCHAR(50);
DECLARE VARIABLE P INTEGER;
BEGIN
    --EGER ESKİ VE YENİ STRİNGLER AYNI İSE CIK
    IF (OLD_STR=NEW_STR) THEN 
    BEGIN
       SONUC_STR=STR;
       SUSPEND;
       EXIT;
    END
    --STRING ARANIR
    SELECT DONEN FROM POS(:OLD_STR,:STR) INTO :P;
    WHILE(P <> 0) DO
    BEGIN
         --BULUNAN YERE VE SONRASINA KADAR SAKLANIR
         TMP_BEG= SUBSTR(:STR,1,:P-1 );
         TMP_END= SUBSTR(:STR,P+STRLEN(:OLD_STR),STRLEN(:STR) );
         --
         STR=TMP_BEG||NEW_STR||TMP_END;
        --SONUC_STR= STR;
         --ESKI STRING TEKRAR ARANIR
         SELECT DONEN FROM POS(:OLD_STR,:STR) INTO :P;
    END
    SONUC_STR=STR;
    SUSPEND;
END
/*degiskenlere win1254 charset eklememisim, yukardaki duzeltildi*/
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla