資料庫造大量資料時可用模板
CREATE OR REPLACE PACKAGE PKG_CREATE_TEST_DATA AS
PROCEDURE PROC_EO_CUSTOMER_SERVICE_ORDER(CNT_NUM NUMBER);
END;
/
CREATE OR REPLACE PACKAGE BODY PKG_CREATE_TEST_DATA AS
PROCEDURE PROC_EO_CUSTOMER_SERVICE_ORDER(CNT_NUM NUMBER) IS
V_CNT_NUM NUMBER := 0;
V_CNT_TM NUMBER;
v_LOOP NUMBER := 0 ;
v_max number;
v_max_id number;
BEGIN
V_CNT_TM := CNT_NUM / 10000;
select max(ECSO_ID)
into v_max_id
from EO_CUSTOMER_SERVICE_ORDER
where ECSO_ID >= 10000000
AND ECSO_ID <= 50000000;
if v_max_id > 0 then
v_max := v_max_id + 1;
else
v_max := 10000000 ;
end if;
loop
exit when v_LOOP >= V_CNT_TM;
v_LOOP := v_LOOP + 1;
V_CNT_NUM := v_LOOP * 10000;
insert into EO_CUSTOMER_SERVICE_ORDER
(ECSO_ID,
CREATOR,
CREATE_TIME,
MODIFIER,
MODIFY_TIME,
REC_VER,
REC_STATUS,
ORG_ID,
ECSO_ORDER_NO,
ECSO_STATUS_CODE,
ECSO_STATUS_NAME,
ECSO_CUSTOMER_FLAG,
ECSO_SHIPPER_COMPANY_NAME,
ECSO_SHIPPER_CONTACT_NAME,
ECSO_SHIPPER_CONTACT_PHONE,
ECSO_ORIGINAL_CITY_CODE,
ECSO_ORIGINAL_CITY_NAME,
ECSO_ORIGINAL_DISTRICT_CODE,
ECSO_ORIGINAL_DISTRICT_NAME,
ECSO_DESTINATION_CITY_CODE,
ECSO_DESTINATION_CITY_NAME,
ECSO_DESTINATION_DISTRICT_CODE,
ECSO_DESTINATION_DISTRICT_NAME,
ECSO_ENTRUSTED_CONTENT,
ECSO_GROSS_WEIGHT,
ECSO_TEMPERATURE_LEVEL_NAME,
ECSO_REMARK,
ECSO_CAREER_TYPE,
ECSO_CUSTOMER_MONTHLY_CARD,
ECSO_TRANSPORT_NO,
ECSO_FOLLOWERS,
ECSO_FOLLOW_UP_TIME,
ECSO_RECEIVE_FAIL_REASON,
ECSO_ORIGINAL_PROVINCE_CODE,
ECSO_ORIGINAL_PROVINCE_NAME,
ECSO_DESTINATION_PROVINCE_CODE,
ECSO_DESTINATION_PROVINCE_NAME)
select (v_max + ROWNUM + V_CNT_NUM) ECSO_ID,
'89003294' CREATOR,
sysdate - rownum / 24 / 3600 CREATE_TIME,
'89003294' MODIFIER,
sysdate - rownum / 24 / 3600 MODIFY_TIME,
0 REC_VER,
0 REC_STATUS,
100 ORG_ID,
'LO' || to_char(sysdate, 'yyyymmdd') ||
(v_max + ROWNUM + V_CNT_NUM) ECSO_ORDER_NO,
CASE MOD(ABS(DBMS_RANDOM.random), 6)
WHEN 1 THEN
'OMS_ORDER_NEW'
WHEN 2 THEN
'OMS_ORDER_CANCEL'
when 3 then
'OMS_ORDER_SUBMIT'
WHEN 4 THEN
'OMS_ORDER_COMPLETE'
when 5 then
'OMS_ORDER_LANSHOU_SUCCESS'
ELSE
'OMS_ORDER_LANSHOU_FAILURE'
END ECSO_STATUS_CODE,
CASE MOD(ABS(DBMS_RANDOM.random), 4)
WHEN 1 THEN
'取消'
WHEN 2 THEN
'完成'
when 3 then
'新增'
ELSE
'稽核'
END ECSO_STATUS_NAME,
CASE MOD(ABS(DBMS_RANDOM.random), 4)
WHEN 1 THEN
'1'
ELSE
'2'
END ECSO_CUSTOMER_FLAG,
'客戶-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_SHIPPER_COMPANY_NAME,
'聯絡人-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_SHIPPER_CONTACT_NAME,
'電話-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_SHIPPER_CONTACT_PHONE,
(v_max + ROWNUM + V_CNT_NUM) ECSO_ORIGINAL_CITY_CODE,
'city-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_ORIGINAL_CITY_NAME,
(v_max + ROWNUM + V_CNT_NUM) ECSO_ORIGINAL_DISTRICT_CODE,
'district-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_ORIGINAL_DISTRICT_NAME,
(v_max + ROWNUM + V_CNT_NUM) ECSO_DESTINATION_CITY_CODE,
'city-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_DESTINATION_CITY_NAME,
(v_max + ROWNUM + V_CNT_NUM) ECSO_DESTINATION_DISTRICT_CODE,
'district-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_DESTINATION_DISTRICT_NAME,
'content-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_ENTRUSTED_CONTENT,
11 ECSO_GROSS_WEIGHT,
11 ECSO_TEMPERATURE_LEVEL_NAME,
'備註資訊-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_REMARK,
CASE MOD(ABS(DBMS_RANDOM.random), 3)
WHEN 1 THEN
'FOOD'
when 2 then
'MEDICINE'
ELSE
'FOOD,MEDICINE'
END ECSO_CAREER_TYPE,
'card-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_CUSTOMER_MONTHLY_CARD,
'LO' || to_char(sysdate, 'yyyymmdd') ||
(v_max + ROWNUM + V_CNT_NUM) ECSO_TRANSPORT_NO,
'89003294' ECSO_FOLLOWERS,
sysdate - rownum / 24 / 3600 ECSO_FOLLOW_UP_TIME,
'失敗原因-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_RECEIVE_FAIL_REASON,
(v_max + ROWNUM + V_CNT_NUM) ECSO_ORIGINAL_PROVINCE_CODE,
'province-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_ORIGINAL_PROVINCE_NAME,
(v_max + ROWNUM + V_CNT_NUM) ECSO_DESTINATION_PROVINCE_CODE,
'province-' || (v_max + ROWNUM + V_CNT_NUM) ECSO_DESTINATION_PROVINCE_NAME
from dual
connect by level <= 10000;
COMMIT;
END LOOP;
END PROC_EO_CUSTOMER_SERVICE_ORDER;
END PKG_CREATE_TEST_DATA;
相關推薦
資料庫造大量資料時可用模板
CREATE OR REPLACE PACKAGE PKG_CREATE_TEST_DATA AS PROCEDURE PROC_EO_CUSTOMER_SERVICE_ORDER(CNT_NUM NUMBER); END; / CREATE OR REP
MySQL資料庫快速造大量資料
這段時間做效能測試,發現數據都是分庫寫進資料庫了,並且要構造大量資料,大概4000萬的資料量,用普通的方法,寫個MySQL函式,之前測試過,大概200萬資料也要跑一個多小時,太慢了. 後面研究發現有個很快的方法, 先寫個Java小工具(這樣比較靈活了, 可以根據自己的需要構造不同的測試資料), 按照分庫規則生
MySQL資料庫匯入或者同步大量資料時資料丟失解決方案
相信大家都經常遇到這樣的情況,我們在編碼的過程中經常需要在除錯程式碼的時候切換到本地的資料庫上做修改除錯,如果當測試資料庫的資料在幾十萬或者上百萬資料的時候,我們無論是通過恢復備份/匯入SQL的方式來把資料匯入到本地的MySQL資料庫的時候,資料都是無法匯入完成的,經常會遇到丟失資料的情況。解決方案: 解決方
mybatis 在oracle資料庫中插入資料時獲取自增ID sequence序列
在oracle中sequence就是序號,每次取的時候它會自動增加。sequence與表沒有關係。 Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE許可權。 建立語句如下: CREATE SEQUEN
URL中文引數往資料庫中存資料時發生亂碼
解決方法:在tomcat_home\conf\server.xml 中的Connector元素中設定URIEncoding屬性為合適的字元編碼 <Connector port="8080" protocol="HTTP/1.1" connectionTime
基於Bloom-Filter演算法和記憶體資料庫的大量資料輕量級100%排重方案
總體模組:一次排重模組(基於布隆演算法) + 二次排重方案(基於記憶體資料庫) 一次排重 //雜湊函式,返回型別為int型 //int型數的總數量[4294967296] (範圍大約在正負21億) //int型別4個位元組,32bits //排重標誌陣列的總長度[4294967296/(4*
python中使用collection.find()在mongodb中查詢大量資料時的問題
問題描述: 假設collection中有2000條資料,執行如下程式碼: i=1 for content in collection.find(): print i++ 列印到101時,列印停止,等待若干秒後繼續列印完全。 分析:
java mybatis 關於中向資料庫中插入資料時,報錯java.lang.NullPointerException的問題
今天在實現向MySQL的資料庫insert一個Object資料時出現一個錯誤; org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptio
向mysql資料庫中插入資料時顯示“Duplicate entry '1′ for key ‘PRIMARY' ”錯誤
錯誤情況如題,出現這個錯誤的原因十分簡單: 很明顯,這是主鍵的問題。 在一張資料表中是不能同時出現多個相同主鍵的資料的 這就是錯誤的原因,解決的方法: 1.可以將這張表設定成無主鍵(mysql支
DB2 儲存過程,迴圈插入資料(使用者自測造大量資料)
表結構如下CREATE TABLE FUND_DAILY_INCOME ( ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY
關於java中向資料庫中插入資料時,報錯Caused by: java.lang.NullPointerException的問題
今天在實現一個update資料時出現一個錯誤; org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
Python從資料庫讀取大量資料批量寫入檔案
使用機器學習訓練資料時,如果資料量較大可能我們不能夠一次性將資料載入進記憶體,這時我們需要將資料進行預處理,分批次載入進記憶體。下面是程式碼作用是將資料從資料庫讀取出來分批次寫入txt文字檔案,方便我
Navicat修改mysql資料庫表插入資料時欄位新增預設當前時間
比如新增createDate建立時間欄位,型別選擇timestamp,預設值填寫CURRENT_TIMESTAMP ,底部勾選欄位複選框提示根據當前時間戳更新 新插入的資料在select查詢時就會把該欄位的值查詢成最新的日期格式資料 資料查詢截圖如下
mybatis 在oracle資料庫中插入資料時獲取自增ID
就是建立一個SEQUENCE,通過它來獲取自增ID ① 在資料庫中操作: CREATE SEQUENCE CONFIG_KEYWORD_GATHER_SEQ;在XXXMapper.xml中程式碼:&l
mybatis 在oracle資料庫中插入資料時獲取自增ID sequence序列
在oracle中sequence就是序號,每次取的時候它會自動增加。sequence與表沒有關係。 Create Sequence 首先要有CREATE SEQUENCE或者CREATE
POI操作Excel時最大行、列數的問題及寫大量資料時Java heap space記憶體溢位解決
如果你從開始選單中啟動excel2007,預設是:1048576如果你儲存或者開啟型別為excel工作簿(.xlsx):1048576如果你儲存或者開啟型別為97-2003工作簿(.xls):65536 public class MaxRowsTest { publi
Mongo在儲存大量資料時,有資料儲存不上的情況?
昨天在用mongo處理百萬級資料時,將資料從本地檔案儲存到mongo資料庫時,總是會缺少那麼幾條。糾結了好長時間檢視程式碼也沒什麼問題。後來在公司前輩的指點下才知道 mongo是先儲存在快取中然後在存入資料庫,但是在存入資料庫的過程中有可能會對資料庫連接出現問題。 在jav
更新資料庫中資料時出現: Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe m
在資料庫中更新資料時報錯: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle
資料庫用對映表取資料時怎麼排序分頁
問題記錄: 面對資料庫多對多的問題,利用對映表取資料的排序問題; 在面對多對多的情況時,我們一般會利用對映表來處理資料,例如一個文章有多個標籤,一個標籤同時也對應多個文章,此時我們便要建立一個文章表,一個標籤表,一個對映表把他們關聯起來。 但是這樣的問題是,怎麼排序呢? 對映表
使用jdbc向資料庫中注入大量資料(以10W條資料批量插入為例)
例項:10w條資料的插入(批量插入) import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class HomeWork02 { //預