sql - SSMS 字符串混淆
问题描述
我需要创建一个脚本来混淆一些数据。字符串很长,我只需要混淆它的某些部分。
表中的记录与此类似:
<?xml version="1.0" encoding="UTF-8"?><CONTRACT><IBC IBC_REF="f45f1231234ae5ac2easdasdfde5dfd" IBC_TYPE="I" TELEPHONE_1="1111111" TELEPHONE_2="11111111" MOBILE_PHONE="11111111" E_MAIL="asdasdasd@hotmail.com" SOLICITATION_MAIL="0" ARREARS_MAIL="1" MAIL_REDIRECTED="0" TITLE="Mrs" SURNAME_REGISTERED_NAME="Assadasd"
它需要变成这样:
<?xml version="1.0" encoding="UTF-8"?><CONTRACT><IBC IBC_REF="f45f1231234ae5ac2easdasdfde5dfd" IBC_TYPE="I" TELEPHONE_1="Telephone-1" TELEPHONE_2="Telephone-2" MOBILE_PHONE="MobilePhone" E_MAIL="email-1" SOLICITATION_MAIL="0" ARREARS_MAIL="1" MAIL_REDIRECTED="0" TITLE="Mrs" SURNAME_REGISTERED_NAME="Surname"
如何通过保存其他单词来更新表的所有行并仅更改部分字符串?
解决方案
看起来您正在使用 XML 字符串,所以我建议使用 SQL Server XML 功能。以下是一个简短的示例:
DECLARE @input NVARCHAR(4000) = '<?xml version="1.0" encoding="UTF-8"?><CONTRACT><IBC IBC_REF="f45f1231234ae5ac2easdasdfde5dfd" IBC_TYPE="I" TELEPHONE_1="1111111" TELEPHONE_2="11111111" MOBILE_PHONE="11111111" E_MAIL="asdasdasd@hotmail.com" SOLICITATION_MAIL="0" ARREARS_MAIL="1" MAIL_REDIRECTED="0" TITLE="Mrs" SURNAME_REGISTERED_NAME="Assadasd" /></CONTRACT>';
DECLARE @x xml = CONVERT(xml, REPLACE(@input,'encoding="UTF-8"','encoding="UTF-16"'));
SELECT @x.value('(/CONTRACT/IBC/@TELEPHONE_1)[1]', 'nvarchar(100)');
DECLARE @y xml = @x
SET @y.modify('replace value of (/CONTRACT/IBC/@TELEPHONE_1)[1] with "TELEPHONE_1"');
SELECT @y.value('(/CONTRACT/IBC/@TELEPHONE_1)[1]', 'nvarchar(100)');
SELECT @y
DECLARE @output NVARCHAR(4000) = '<?xml version="1.0" encoding="UTF-8"?>' + CONVERT(NVARCHAR(4000), @y)
SELECT @output
推荐阅读
- smartcontracts - 如何在 Plutus 智能合约中分配不均等的金额
- react-native - 是否仍然可以为 facebook 使用 oAuth 网络登录?
- json - 使用参数从 Wix 调用 PowerShell 脚本
- reactjs - Redux 工具包操作不知何故不同步
- php - Facebook Conversions API - AuthorizationException(无效参数)
- python - import_public_link() 中的 file_key 参数是什么?
- javascript - 承诺链中的异常处理
- pyspark - 如何批量收集RDD中的元素
- spring-boot - Spring @Transactional 在 CompletionHandler 回调方法中不起作用
- javascript - 用于切换“显示您的位置”的 Javascript 传单地图