クレジットカードを隠すために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をもう少し追加します。パッドを左
唯一の問題は、いくつかの数字が4文字未満の場合には例
1242 would turn into XXXXXX1242
12 would turn into XXXXXXXX12
1234567890 would turn into XXXXXX7890
表を私に送信してください。私は喜んでお手伝いします:) –
@MikeChristensen LOL。私は無料でお手伝いできるたくさんのロシアのサイトを見つけることができると思います! – Bohemian
あなたが部分文字列を使用してそれを達成できるか疑問に思う。たとえば、最大数の 'xxxx'文字列を作成します。 rihgt(creditcardnumber、4)に長さと部分文字列を使用するよりも簡単です。あなたが思うこと? – AJP