oracle数据脱敏
时间: 2023-11-28 14:43:33 浏览: 47
以下是两种Oracle数据脱敏的方法:
1. 使用SUBSTR函数进行手机号脱敏
```sql
UPDATE table SET 列 = (
CASE
WHEN 列 IS NOT NULL THEN SUBSTR(列, 1, 3) || '*****' || SUBSTR(列, 9)
ELSE NULL
END
);
```
执行结果:135*****197
2. 使用自定义函数进行敏感字段脱敏
```sql
CREATE OR REPLACE FUNCTION F_GET_SENSITIVE(IN_STR VARCHAR, IN_START NUMBER, IN_END NUMBER) RETURN VARCHAR
IS
OUT_STR VARCHAR(2000);
BEGIN
IF IN_STR IS NULL THEN
RETURN NULL;
END IF;
OUT_STR := SUBSTR(IN_STR, 1, IN_START - 1);
FOR I IN IN_START..IN_END LOOP
OUT_STR := OUT_STR || '*';
END LOOP;
OUT_STR := OUT_STR || SUBSTR(IN_STR, IN_END + 1);
RETURN OUT_STR;
END;
```
使用方法:
```sql
SELECT F_GET_SENSITIVE('张三', 2, 2) FROM DUAL;
-- 输出:*张*
```