Мне нужно сделать обновление на столе с более чем 1 миллионом записей для маскировки кредитных карт.Как замаскировать кредитную карту в 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
Отправьте мне стол, и я с радостью поможем вам: –
@MikeChristensen LOL. Я думаю, мы сможем найти много русских сайтов, которые помогут бесплатно! – Bohemian
Интересно, можете ли вы использовать подстроку и достичь этого. например, создать максимальное количество строк «xxxx». а использовать длину и подстроку добавить к rihgt (creditcardnumber, 4). что ты думаешь? – AJP