MS SQL kayıtlardaki null char(0) ları silmek

ascii tablosu

Select sonucu dönen bir kolonda ascii 0 yani null var ise ve bunu değiştirmek istiyorsak char , replace fonksiyonları kullanılır.

SELECT TOP 10 SARJKODU,len(sarjkodu) a
,REPLACE(ltrim(rtrim(SARJKODU)) COLLATE Latin1_General_100_BIN, CHAR(0), '') as x
,len(REPLACE(ltrim(rtrim(SARJKODU)) COLLATE Latin1_General_100_BIN, CHAR(0), '')) as y
from [FORMA_URETIM].[dbo].[Table1]
WITH (NOLOCK)
where 
ISNUMERIC(REPLACE(ltrim(rtrim(SARJKODU)) COLLATE Latin1_General_100_BIN, CHAR(0), ''))=1
ORDER BY QUOTENAME(sarjkodu)
SARJKODU a x y
111003 18 111003 6
111002 18 111002 6
111002 18 111002 6
111002 18 111002 6
 18 111 3
 18 111 3
 18 111 3
 19 111 3
111006 18 111006 6
111010 18 111010 6

MSSQL Collate sotunu ve çözümü

Veritabanınızın collate ayarlarını değiştirmek isterseniz single moda geçmelisiniz.

ALTER DATABASE SAP SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE SAP COLLATE TURKISH_CI_AS
ALTER DATABASE SAP SET MULTI_USER

Cannot resolve the collation conflict between
“Turkish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation.
Hatasını alıyorsanız sorgu sonuna COLLATE TURKISH_CI_AS eklemelisiniz.

SELECT A.*
FROM ALGU_SAP_CUSTOMERS  A,ALGU_SAP_ORDERHEAD B,ALGU_SAP_ORDERITEM C,ALGU_SAP_MATERIALS D
WHERE A.CUSTOMER = B.CUSTOMER AND B.DOCNUM = C.DOCNUM AND C.MATERIAL = D.MATERIAL
COLLATE TURKISH_CI_AS

SAP ICF servisleri için ayar ekranı

SICF ile servislere erişilip. Web servislerine erişim bilgilerini düzenleyebilirsiniz. Örneğin üretim tarafında PP el terminali ile işlemlerde bu servisler ile yapılır.
Yeni servis yaratma:
1. SE80->Package->* Sağ Tık:Other(1)->Internet Service: servis ismi ve t-code girilir.
2. SE80->Package->Screens->tüm ekranlar * sağ tık ->Other Functions->Create Template: 1. adımda girilen servis adı,
Theme = 99, Generating Style = Mobile Devices (No HTML Tables)
3. Her Create Template işleminden sonra Internet Service e sağ tik* Publish->Service File ve Complete Service
4. SICF ile bağlantı adresi oluşturulur. (gui/sap/its) *sağ tik New Sub-Element

SQL Sunucu – Ön Bellek Temizlenmesi

SQL sunucunuz çok yavaşladıysa ve işlemler bellek yetmezliğinden dolayı hatalar vermeye başladıysa SQL Server servisini yeniden başlatırsanız, tüm cache bilgisi otomatik olarak temizlenir. Ancak SQL Server servisini yeniden başlatmak mümkün değil ise  aşağıdaki komutlarla da cache temizlenebilir, tempdb shrink işlemi işe yaramadığında bu komutu kullanmıştım:

DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE