使用 replace(phone,substr(phone,4,4),'****') 即可。
如下sql:
SELECT
username,
REPLACE ( phone, substr( phone, 4, 4 ), '****' ) AS phone
USER;
还有一种方式 substr(username,1,3)||'****'||substr(username,-4,4),
sql如下:
update
user set username
=substr(username,1,3)||'****'||substr(username,-4,4) where username is not null;
使用 replace(phone,substr(phone,4,4),'****') 即可。如下sql:SELECT username, REPLACE ( phone, substr( phone, 4, 4 ), '****' ) AS phone FROM USER;
1、REPLACE
语法:REPLACE(char, search_string,replacement_string)
用法:将char中的字符串search_string全部转换为字符串replacement_string。
举例:SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
#每天一点点,记录工作中实操可行#
Oracle 中将电话
号码
中间4位数以
星号*代替
select replace(phone,substr(phone,4,4),'****') from table_name
excel 中将电话
号码
中间4位数以
星号*代替
REPLACE(电话
号码所在单元格,4,4,"****")
1.varchar转为number,用 to_number(列名):
select to_number(t.create_user) from 表名 t;
2.number转为varchar,用 to_char(列名):
select to_char(t.user_role_id) from 表名 t;
3.date转为varchar类型,用 to_char(列名,想要的日期格式):
select...
1、数据为oracle导出SQL文件,可直接导入到oracle数据库。
2、内容包括手机号码前7位号段,所属省市,卡类型,所属区号,可通过多个纬度方便数据统计。
3、数据共496398万,为2023年03月更新。
表结构如下
CREATE TABLE phone_area (
"ID" NUMBER(11,0) VISIBLE NOT NULL,
"CALLNUMBER" VARCHAR2(15 BYTE) VISIBLE,
"CODE" VARCHAR2(5 BYTE) VISIBLE,
"CITY" VARCHAR2(50 BYTE) VISIBLE,
"CARDTYPE" VARCHAR2(50 BYTE) VISIBLE,
"PROV" VARCHAR2(50 BYTE) VISIBLE
导入前清空表数据:DROP TABLE phone_area;
Result varchar2(20); --定义变量
begin
select replace(fid,substr(fid,5,length(fid)-8),'*') into Result from dual;
return(Result); --
您好,我可以回答这个问题。Oracle 校验手机号可以使用正则表达式来实现,例如:
SELECT CASE WHEN REGEXP_LIKE('手机号码', '^1[3|4|5|6|7|8|9]\\d{9}$') THEN '是手机号码' ELSE '不是手机号码' END FROM DUAL;
其中,手机号码需要替换成实际的手机号码。正则表达式中,^1[3|4|5|6|7|8|9]\\d{9}$ 表示以 1 开头,第二位是 3、4、5、6、7、8、9 中的一个,后面跟着 9 个数字,共 11 位。如果符合这个规则,则返回“是手机号码”,否则返回“不是手机号码”。