Merhaba , Artık eskisi gibi programlamayla uğraşamıyorum. Arada sırada ufak tefek ihtiyaçları karşılamak için kod yazıyorum o kadar. Kod yazmak çok zevkli bir iş ama hagi işi yaparsanız yapın işinize ilerledikçe eninde sonunda işletmeci-idareci oluyorsunuz. her şeyi idare ediyoruz yani. Bende baya uzak kalmışım bu alemdenki iki satır kod için baya uğraştım. Yeni mezun yazılımcı arkadaşlara tavsiyem eğer işinizi severk yapıyorsanız kendinize iyi bir iş bulun kodlaınızı yazın kalanına karşmayın tabi günümüz şartlarında bu baya zor. İş akışı sizi yapmaktan hoşalandığınız kod yazma yerine okuldan mezun olduğunuzda angraya olarak gördüğünüz işlere sürüklüyor. Her halanda böyle mesela doktor olasınız eninde sonunda baş hekim yapıyorlar doktorluk yerine hastane müdürü oluveriyorsunuz
Elime 3 milon dan fazla bir mail bankası geçti, dedim şunu bi temizliyim. Db ye aldım. Unic indexle bir sürü chek kontrolü ile filan geçersiz mailleri baya ayıkladım ama yetmedi. çünkü kayıtlarda ç,ş,ü, gibi kareketerler kullanılmış olacak şey değil ama oluyor. Bunları temizlemenin iki yöntemi var biri dbyi txt olarak export edip bi stajer bulup bu angraya işi notepat++ la bul değiştir yaptırmak. diğer veri tabanının bul değiştir fonksiyonunu kullanarak bu işlemi firebirde yaptırmak. Her halukarda işlem uzun sürüyor, çünkü veri çok. Neyse ben sql i seçtim ama işin başında deyim notepat++ kesin daha hızlı bitirirdi bu işi. Çünkü kod yazmasıydı filandı feşamdı derken 30 dk geçiveriyor. birde unic index e takıldı hata verdi. Ama ben noSql e yes diyemeyen antika programcı familyasıdayım.
Sadede gelmek gerekirse
Emails tablsunda Emails_email alanındaki verilerde bul ve değitir işlemi yapan store procedure yi kod olarak ekliyorum.
mesela veri tabanında İ kullanıldıyasa onu i olarak değiştiriyorum.
bunun için cursor kullanıyorum
bu fonksiyon için firebird 2.1üstü kullanmanız gerekmekte.
umarım bir gün birilerinin işine yarar
Elime 3 milon dan fazla bir mail bankası geçti, dedim şunu bi temizliyim. Db ye aldım. Unic indexle bir sürü chek kontrolü ile filan geçersiz mailleri baya ayıkladım ama yetmedi. çünkü kayıtlarda ç,ş,ü, gibi kareketerler kullanılmış olacak şey değil ama oluyor. Bunları temizlemenin iki yöntemi var biri dbyi txt olarak export edip bi stajer bulup bu angraya işi notepat++ la bul değiştir yaptırmak. diğer veri tabanının bul değiştir fonksiyonunu kullanarak bu işlemi firebirde yaptırmak. Her halukarda işlem uzun sürüyor, çünkü veri çok. Neyse ben sql i seçtim ama işin başında deyim notepat++ kesin daha hızlı bitirirdi bu işi. Çünkü kod yazmasıydı filandı feşamdı derken 30 dk geçiveriyor. birde unic index e takıldı hata verdi. Ama ben noSql e yes diyemeyen antika programcı familyasıdayım.
Sadede gelmek gerekirse
Emails tablsunda Emails_email alanındaki verilerde bul ve değitir işlemi yapan store procedure yi kod olarak ekliyorum.
mesela veri tabanında İ kullanıldıyasa onu i olarak değiştiriyorum.
bunun için cursor kullanıyorum
bu fonksiyon için firebird 2.1üstü kullanmanız gerekmekte.
Kod:
SET TERM ^ ;
create PROCEDURE DEGISTIR2
AS
DECLARE VARIABLE sayac INTEGER ;
DECLARE VARIABLE EMAILS varchar(60);
DECLARE VARIABLE KAYIT_SAYISI integer ;
declare cur cursor for
(select EMAILS_EMAIL from EMAILS);
begin
sayac = 0;
select count(*) from EMAILS into :kayit_sayisi ;
open cur;
while (:kayit_sayisi>sayac) do
begin
sayac = sayac +1 ;
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'Ü', 'u');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'ü', 'u');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'Ğ', 'g');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'ğ', 'g');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'İ', 'i');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'I', 'i');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'Ş', 's');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'ş', 's');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'Ç', 'c');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'ç', 'c');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'Ö', 'o');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'ö', 'o');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, ' ', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'www', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, 'WWW', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, '!', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, '#', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, '~', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, ':', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, '?', '');
update EMAILS r set r.EMAILS_EMAIL = replace(r.EMAILS_EMAIL, '$', '');
if (row_count = 0) then leave;
suspend;
end
close cur;
end^
SET TERM ; ^
GRANT EXECUTE
ON PROCEDURE DEGISTIR2 TO SYSDBA;
Kod:
CREATE TABLE EMAILS
(
EMAILS_OTO integer NOT NULL,
EMAILS_EMAIL varchar(50) COLLATE PXW_TURK,
EMAILS_NOT varchar(10) COLLATE PXW_TURK,
CONSTRAINT PK_EMAILS_0 PRIMARY KEY (EMAILS_OTO)
);
umarım bir gün birilerinin işine yarar