Forum
Merhabalar,
Tablomda Adı ve Soyadı ayrı satırlarda tutuyorum. Kişilerin iki adı ya da soyadı olabiliyor. Ben ilk üç karakterden sonrakilere * işareti koymak istiyorum.
Kelimeleri ayırıp * koyuyorum fakat tabloda 2 kelime ya da 4 kelime isim soyisim olunca verim bozuluyor.Tek satırda nasıl yazılabilir?
Örneğin: Adi+''+Soyadi
1. Ferhan Güney Bayrak Sultan
2. Hasan Gönül
3. Hüseyin Halil Göktürk
Sonuç:
Fer Gün Bay Sul
Has Gön
Hüs Hal Gök***
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Selamlar,
Bu işlemi sorgu ile yapmak yerine veri tabanı özelliklerini kullanmanız daha iyi olacak. Örneğin siz ilk 3 karakterden sonra yıldız gelsin demişssiniz. İsmi üç harfli olanlarda ( ece , eda , ali , Nil vb. ) sorun olacaktır.
Size önerim, Oracle için DBMS_REDACT , Mssql için dynamic data masking konularını incelemeniz.
https://oracle-base.com/articles/12c/data-redaction-12cr1
https://blog.toadworld.com/what-are-the-gdpr-rules-and-how-do-these-apply-to-the-dba
Oracle ACE Associate - Türkiye Hayat & Emeklilik
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Selamlar,
Alternatif olarak aşağıdaki sorguyu deneyebilir misiniz.
IF (SELECT COUNT(*) FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'FN_KARAKTERSIFRELE') AND XTYPE IN (N'FN', N'IF', N'TF'))>0
BEGIN
DROP FUNCTION [dbo].[FN_KARAKTERSIFRELE]
END
GO
CREATE FUNCTION FN_KARAKTERSIFRELE (@ISIM NVARCHAR(4000),@KARAKTER INT,@YILDIZSAYISI INT)
RETURNS NVARCHAR(4000)
AS
Begin
---=== @ISIM >>>> Değişkeni ismin kendisini alacak
---=== @KARAKTER >>> İsimden kaç tane karakter alınacak
---=== @YILDIZSAYISI >>> Karakterden sonra eklenecek yıldız sayısı
DECLARE @SONUC NVARCHAR(4000) ;
DECLARE @TABLOM TABLE (SATIRNO INT IDENTITY(1,1) ,ID INT,ISIM NVARCHAR(4000))
INSERT INTO @TABLOM
SELECT 1 ID,T.C.value('.', 'VARCHAR(4000)') AS ISIM
FROM (SELECT CAST('<C>' + REPLACE(@ISIM,' ','</C><C>') + '</C>' AS XML) AS X) AS A
CROSS APPLY X.nodes ('/C') AS T(C)
SELECT
@SONUC=stuff((select ' '+CASE WHEN LEN(ISIM)>=@KARAKTER THEN SUBSTRING(ISIM,1,@KARAKTER)+''+REPLICATE('*', @YILDIZSAYISI) ELSE ISIM END
FROM @TABLOM n WHERE n.ID = n.ID ORDER BY N.SATIRNO ASC FOR XML PATH('')), 1, 2, '')
FROM @TABLOM AS T
GROUP BY ID
RETURN @SONUC
End
GO
DECLARE @ISIMLER TABLE (ISIM NVARCHAR(4000))
INSERT INTO @ISIMLER
VALUES('Ferhan Güney Bayrak Sultan'),('Hasan Gönül'),('Hüseyin Halil Göktürk')
SELECT *,dbo.FN_KARAKTERSIFRELE(ISIM,'3','3')SONUC FROM @ISIMLER
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
@bugraparlayan teşekkürler. DB de maskeleme yapıyorum hash atıyorum. Bu tek seferlik lazım bana. Raporlama yapacağım web e.
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Selamlar @vedatozerr
Yarın deneceğim, teşekkürler.
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Destekleriniz için teşekkürler fakat sorunumu çözmedi.
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Mehmet bey,
Sorgunun verdiği sonucu paylaşabilir misiniz.
Mümkünse resim
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
Teşekkür ederim @vedatozerr
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Rica Ederim,
Yukarıda kodu eklerken bir boşluk eklemeyi unutmuşum kodun güncel hali aşağıdadır.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]