SQL Replace ve Update

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Murats
Üye
Mesajlar: 33
Kayıt: 02 Nis 2007 12:20
Konum: Kocaeli Gebze

SQL Replace ve Update

Mesaj gönderen Murats »

Kod: Tümünü seç

UPDATE HASTA_EPIKRIZ SET

TANI = REPLACE(TANI, ', tanımlanmamış', '')
Yukarıdaki gibi bir komut çalıştırmak istiyorum ama hata alıyorum. Where ile kısmı kaytılarada girse fark etmiyor.

Kod: Tümünü seç

Argument data type text is invalid for argument 1 of replace function.
Gibi bir hata alıyorum. Nedir bunu ilacı anlamadım.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Burda genel yapı

update tablo adı
set alan_adı=yeni değer
where alan_adı = eski değer

şeklindedir. Yanlış anlamadıysam tanımlanmamış olanları TANI yapmak istiyorsun. Bunu şu şekilde yapman lazım :

UPDATE HASTA_EPIKRIZ
SET TANI='TANI'
where TANI='tanımlanmamış'

Eğer kayıtların hepsinde bir değişiklik yapmak istiyorsan, where kısmını kaldırman lazım.


UPDATE HASTA_EPIKRIZ
SET TANI='TANI'

gibi.

Kolay gelsin.
Murats
Üye
Mesajlar: 33
Kayıt: 02 Nis 2007 12:20
Konum: Kocaeli Gebze

Mesaj gönderen Murats »

Hayır tanımlanmamıs olanlari silmek istiyorum o yuzden replace komutunu kullandım.

Ama nedense bu hatayı aldım. TANI bir filed onun içinde sonu yada başı yada ortasında tanımlanmamış olarak girilmiş değerleri silmek istiyorum.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

UPDATE HASTA_EPIKRIZ 
SET TANI = REPLACE(TANI, ', tanımlanmamış', '')
WHERE TANI IS NOT NULL
TANI içeriği boş veya NULL ise neyi değiştirsin, bir kontrol gerekmez mi :?: :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Murats
Üye
Mesajlar: 33
Kayıt: 02 Nis 2007 12:20
Konum: Kocaeli Gebze

Mesaj gönderen Murats »

Hayır içerisi dolu. yani örnek olarak baktığımızda şu şekilde veri yazilmiş.

Akut Tonsillit, Tanımlanmamış

Ben burada sadece Akut tonsillit in kalması için replace kullanmak istedim ama bir kaç yerde okuduğum kadari ile bunu yapamayabiliriz demişler iyi ingilizcem olmadığı için anlamadım.

updatetext ile bu tip birşey yapabilirmiyim ?
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Sanırım REPLACE fonksiyonu harfe duyardı, yazıldığı gibi denemelisin.

Kod: Tümünü seç

UPDATE HASTA_EPIKRIZ
SET TANI = REPLACE(TANI, ', Tanımlanmamış', '')
Bir de burada Türkçe harf kullandığından COLLATE vermen gerekebilir.
Örnek kullanım, tabi Türkçe Collate ile olacak
http://technet.microsoft.com/en-us/libr ... 86862.aspx :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Murats
Üye
Mesajlar: 33
Kayıt: 02 Nis 2007 12:20
Konum: Kocaeli Gebze

Mesaj gönderen Murats »

Onuda denedim sonuc deyişmedi. Update ile replace yi bir arada kullanamıyormuyuz acaba ?
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

kullanılır. where de kullanılır.

Kod: Tümünü seç

UPDATE Table SET fieldm = REPLACE(fieldm, 'değişecek', 'olacak')
Where fieldm LIKE '%Hanigisi ise %'
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Murats
Üye
Mesajlar: 33
Kayıt: 02 Nis 2007 12:20
Konum: Kocaeli Gebze

Mesaj gönderen Murats »

Benımde ilk örneğim öyle idi ama sadece where.. kullanmadım.

Where kullansamda sonuc değişmiyor.

Kod: Tümünü seç

UPDATE HASTA_EPIKRIZ SET TANI = REPLACE(TANI, ', tanımlanmamış', '')
where TANI like '%tanımlanmamış%'

Error:
Argument data type text is invalid for argument 1 of replace function.
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Bilge kişilik ak sakallı google dede :) .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Murats
Üye
Mesajlar: 33
Kayıt: 02 Nis 2007 12:20
Konum: Kocaeli Gebze

Mesaj gönderen Murats »

replace fonksiyonu field türü text olunca çalışmıyormus. Türü nvarchar olarak değiştirdim. Şu anda sorgu rahat bir şekilde çalışıyor.
Cevapla