
uj5u.com熱心網友回復:
樓主是哪個存盤程序遇到麻煩了?uj5u.com熱心網友回復:
create or replace procedure proc_random is
v_FilePath varchar2(200);--錄制檔案路徑,隨機6個字母
v_PartId varchar2(200);--區分欄位 格式MMDD,隨機4個數字
v_StaffNo varchar2(200);--業務代表號,從YTCZ060001-YTCZ060020隨機生成
v_RecordTime date;--錄制時間,從20170804前6個月隨機生成
x number :=0;--回圈
begin
--回圈執行500次
while x<=50000 loop
x :=x+1;
--生成6個字母
select dbms_random.string('U', 6) into v_FilePath from dual;
--生成4個數字
select round(dbms_random.value(1000,9999)) into v_PartId from dual;
--生成業務編號
select 'YTCZ0600'||to_char(round(dbms_random.value(1,20)),'fm00') into v_StaffNo from dual;
--生成時間
select to_date(trunc(dbms_random.value(to_number(to_char(to_date('20170801','yyyymmdd'),'J')),
to_number(to_char(to_date('20170201','yyyymmdd') + 1,'J')))),
'J') into v_RecordTime/*+
(trunc(dbms_random.value(9, 17)) * 3600 +
trunc(dbms_random.value(0, 60)) * 60 +
trunc(dbms_random.value(0, 60))) / (24 * 60 * 60)*/
from dual;
-- 向t_lzinfor表插入資料
insert into t_lzinfor(seriaino,filepath,partid,staffno,recordtime)
values(t_lzinfor_seq.nextval,v_FilePath,v_PartId,v_StaffNo,v_RecordTime);
commit;
end loop;
end proc_random;
uj5u.com熱心網友回復:
如下SQL是隨機生成1000記錄,其它的都簡單了,自己寫吧。select rownum serialno,--自動增長序列
dbms_random.string('$', 6) filepath,--隨機取6個字贈
trunc(dbms_random.value(4, 9999)) partid,--隨機取4個數字
'YTCZ0'||trunc(dbms_random.value(60001,60020)) staffno,--從YTCZ060001...YTCZ060020中隨機抽取
to_date(trunc(
dbms_random.value(
to_char(add_months(to_date('20060804','YYYYMMDD'),-6),'J'),
to_char(add_months(to_date('20060804','YYYYMMDD'),-6),'J')+
(to_date('20060804','YYYYMMDD')-add_months(to_date('20060804','YYYYMMDD'),-6))
)
),'J') --從2006年8月4日前的6個月內,隨機抽取
from dual
connect by level <= 1000;
uj5u.com熱心網友回復:
優化一下隨機抽取時間的陳述句select rownum serialno,--自動增長序列
dbms_random.string('$', 6) filepath,--隨機取6個字贈
trunc(dbms_random.value(4, 9999)) partid,--隨機取4個數字
'YTCZ0'||trunc(dbms_random.value(60001,60020)) staffno,--從YTCZ060001...YTCZ060020中隨機抽取
to_date('20060804','YYYYMMDD')-
trunc(dbms_random.value(0,
to_date('20060804','YYYYMMDD')-
add_months(to_date('20060804','YYYYMMDD'),-6))
) --從2006年8月4日前的6個月內,隨機抽取
from dual
connect by level <= 1000;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/71768.html
標籤:高級技術
上一篇:求大神幫忙,SSM連接oracle,sql查詢爆錯誤,跪求~~
下一篇:如何用sql解決多條件過濾
