我需要对拥有超过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