我需要對擁有超過100萬條記錄的表進行更新以屏蔽信用卡。如何在sql中屏蔽信用卡?
我必須保留最後4位數,其餘的應該變成X的。
我想出這個至今
BEGIN TRAN
-- SQL update in batches of 10,000
WHILE (2 > 1)
BEGIN
BEGIN TRANSACTION
UPDATE TOP (10000) tblMyTable
SET creditCardNumber = 'XXXXXX' + RIGHT(creditCardNumber, 4)
WHERE myDate < '2010-Feb-02'
IF @@ROWCOUNT = 0
BEGIN
COMMIT TRANSACTION
BREAK
END
COMMIT TRANSACTION
-- 1 second delay
WAITFOR DELAY '00:00:01'
END -- WHILE
GO
ROLLBACK
與這雖然問題是有在數據庫中有明顯僞造的信用卡,甚至可能沒有4個位數的記錄。基本上我需要更新這是爲了添加相同數量的X並保留最後4位數字。如果少於4位數字,則再添加一些X.
例
1242 would turn into XXXXXX1242
12 would turn into XXXXXXXX12
1234567890 would turn into XXXXXX7890
發送桌子給我,我很樂意幫助你:) – 2012-01-27 00:14:29
@MikeChristensen哈哈。我想我們可以找到很多免費的俄羅斯網站! – Bohemian 2012-01-27 00:18:12
想知道你是否可以使用子串並實現它。例如創建最大數量的'xxxx'字符串。並使用長度和子字符串添加到rihgt(creditcardnumber,4)。你怎麼看? – AJP 2012-01-27 00:23:58