ORACLE 函数 随机生成手机号,时间
2016-07-29 16:18
603 查看
随机生成时间
create or replace function getRoundDate(begindate in varchar2,enddate in varchar2)
return date
is
v_date date;
v_b varchar2(8);
v_e varchar2(8);
begin
v_b:=begindate;
v_e:=enddate;
SELECT to_date(TRUNC(DBMS_RANDOM.VALUE(
to_number(to_char(to_date(v_b,'yyyymmdd'),'J')),
to_number(to_char(to_date(v_e,'yyyymmdd')+1,'J')))),'J')+
DBMS_RANDOM.VALUE(1,3600)/3600
into v_date
FROM dual;
return v_date;
end;
随机生成手机号码
create or replace function my_mobile_num
return varchar2
is
v_mobile varchar2(50);
TYPE segnum IS VARRAY (35) OF VARCHAR2 (3);
segnum_set segnum := segnum ('133',
'153',
'180',
'181',
'189',
'177',
'130',
'131',
'132',
'155',
'156',
'145',
'185',
'186',
'176',
'134',
'135',
'136',
'137',
'138',
'139',
'150',
'151',
'152',
'158',
'159',
'182',
'183',
'184',
'157',
'187',
'188',
'147',
'178',
'170');
v_name1 nvarchar2(20);
v_name2 nvarchar2(20);
v_name3 nvarchar2(20);
begin
select segnum_set(trunc(dbms_random.value(1,35))) into v_name1 from dual;
select substr(cast(dbms_random.value as varchar2(38)),3,4) into v_name2 from dual;
select substr(cast(dbms_random.value as varchar2(38)),3,4) into v_name3 from dual ;
v_mobile:=v_name1||v_name2||v_name3;
return v_mobile;
end;
create or replace function getRoundDate(begindate in varchar2,enddate in varchar2)
return date
is
v_date date;
v_b varchar2(8);
v_e varchar2(8);
begin
v_b:=begindate;
v_e:=enddate;
SELECT to_date(TRUNC(DBMS_RANDOM.VALUE(
to_number(to_char(to_date(v_b,'yyyymmdd'),'J')),
to_number(to_char(to_date(v_e,'yyyymmdd')+1,'J')))),'J')+
DBMS_RANDOM.VALUE(1,3600)/3600
into v_date
FROM dual;
return v_date;
end;
随机生成手机号码
create or replace function my_mobile_num
return varchar2
is
v_mobile varchar2(50);
TYPE segnum IS VARRAY (35) OF VARCHAR2 (3);
segnum_set segnum := segnum ('133',
'153',
'180',
'181',
'189',
'177',
'130',
'131',
'132',
'155',
'156',
'145',
'185',
'186',
'176',
'134',
'135',
'136',
'137',
'138',
'139',
'150',
'151',
'152',
'158',
'159',
'182',
'183',
'184',
'157',
'187',
'188',
'147',
'178',
'170');
v_name1 nvarchar2(20);
v_name2 nvarchar2(20);
v_name3 nvarchar2(20);
begin
select segnum_set(trunc(dbms_random.value(1,35))) into v_name1 from dual;
select substr(cast(dbms_random.value as varchar2(38)),3,4) into v_name2 from dual;
select substr(cast(dbms_random.value as varchar2(38)),3,4) into v_name3 from dual ;
v_mobile:=v_name1||v_name2||v_name3;
return v_mobile;
end;
相关文章推荐
- Oracle 建立索引及SQL优化
- ojdbc6中的错误信息
- 要用PLSQLDEV必须安装oracle客户端且不支持64位oracle客户端
- 大量read by other session导致oracle性能低
- ORACLE函数之日期时间运算函数
- Oracle WDP的前世今生
- oracle数据库删除操作
- oracle检查一个表是否存在
- C#中用到的oracle语句总结
- [ORACLE] case when then else end 应用
- Oracle数据库怎么删除列
- Oracle在.NET里面的DBHelper、OracleDBHelper
- .NET WIN7 64位 连接Oracle数据库
- ORA-06413连接未打开的错误的原因和解决方法
- 十、oracle 常用函数
- oracle PROCEDURE 存储过程
- ORACLE-Kill 杀死正在执行的Oracle存储过程和死锁语句
- Oracle分析函数入门
- oracle 报-ORA-00922: 选项缺失或无效 解决方法
- oracle imp 命令