平時我們造數據都是簡單的在代碼塊中造,begin for....end這種代碼塊去循環造數據,這樣造出來的數據單一,數據都是連續性的。
最近開發應老大要求造一些離散的數據。所以首先想到了使用存儲過程來生成一些離散的關聯的,重要的數據。
一:首先先創建packge:
create or replace package pkg_xiaomo_test_report_data is
---創建一個自定義數據類型
TYPE USER_TYPE IS RECORD(
USER_ID VARCHAR2(84),
USER_NAME VARCHAR2(64),
DEPT_ID VARCHAR2(60));
PROCEDURE insert_begin(V_DATA_MIN_COUNT IN NUMBER,V_DATA_MAX_COUNT IN NUMBER,IS_OUT_OR_OHTER IN NUMBER);
PROCEDURE insert_wrk_asc_wq(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER);
PROCEDURE insert_wrk_asc_cm(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER);
PROCEDURE insert_SYC_BSE_CP(V_ACCT_SN IN NUMBER);
PROCEDURE insert_wrk_softp_calllist(V_ACCT_SN IN NUMBER,
V_PHONE_NUM1 IN VARCHAR2);
PROCEDURE insert_wrk_bse_chg(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER);
PROCEDURE insert_wrk_bse_ptp(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER);
PROCEDURE insert_WRK_SOFTP_IVROBDT(V_PHONE_NUM1 IN VARCHAR2);
PROCEDURE insert_wrk_softp_ivrobsec(V_ACCT_SN IN NUMBER,
V_PHONE_NUM1 IN VARCHAR2);
PROCEDURE insert_wrk_bse_at(V_ACCT_SN IN NUMBER);
PROCEDURE insert_wrk_nps_cal(P_USER IN USER_TYPE,
V_PHONE_NUM1 IN VARCHAR2,
V_ACCT_SN IN NUMBER);
PROCEDURE insert_syc_bse_remark(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER);
PROCEDURE insert_wrk_bse_onekey(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER);
PROCEDURE update_history_data;
PROCEDURE delete_history_data;
end pkg_xiaomo_test_report_data;
二:創建body
create or replace package body pkg_xiaomo_test_report_data is
V_MODULE VARCHAR2(100) := 'pkg_cmpcc_test_report_data';
V_BATNUM NUMBER(10); --當前處理人相關數量值
/* V_DATA_MIN_COUNT NUMBER(10); -- 開關造數最小值
V_DATA_MAX_COUNT NUMBER(10); --開關造數最大值
*/
V_ACCT_SN NUMBER(26); --賬戶流水號
/* V_ACCT_NO VARCHAR2(84); --賬戶號,即合同號
V_CUST_NO VARCHAR2(84); -- 客戶號*/
V_PHONE_NUM1 VARCHAR2(30); --電話號碼
V_BUSI_RANDOM NUMBER(2);
V_DATA_RANDOM NUMBER(2);
PROCEDURE insert_begin(V_DATA_MIN_COUNT IN NUMBER,
V_DATA_MAX_COUNT IN NUMBER,
IS_OUT_OR_OHTER IN NUMBER) IS
V_ACTION VARCHAR2(50) := 'insert_begin';
/* cursor c_iloan_type is
select cd.item_value
from SYC_BSE_CD cd
where cd.code_id = 'ILOAN_BUSINESS_TYPE';*/
CURSOR V_USER IS
select r.user_id, r.user_name, r.dept_id
from syc_smg_usr r
where r.dept_id = 'ZS_CD_TEST_EFCT';
BEGIN
/* SELECT to_number(CD.ITEM_VALUE)
INTO V_DATA_MIN_COUNT
FROM SYC_BSE_CD CD
WHERE CD.CODE_ID = 'TEST_DATA_CONFIGURE'
AND CD.ITEM_SEQ = '1';*/
/* SELECT to_number(CD.ITEM_VALUE)
INTO V_DATA_MAX_COUNT
FROM SYC_BSE_CD CD
WHERE CD.CODE_ID = 'TEST_DATA_CONFIGURE'
AND CD.ITEM_SEQ = '2';*/
--循環催員作插入
FOR V_CUR IN V_USER LOOP
select trunc(dbms_random.value(V_DATA_MIN_COUNT, V_DATA_MAX_COUNT))
into V_BATNUM
from dual;
--分別插入各個表數據
for x in 1 .. V_BATNUM loop
BEGIN
V_ACCT_SN := trunc(dbms_random.value(0, 9999999999999999)) || x;
V_BUSI_RANDOM := trunc(dbms_random.value(0, 5));
V_DATA_RANDOM := trunc(dbms_random.value(0, 2));
/* V_ACCT_NO := trunc(dbms_random.value(0, 9999999999999999)) || x;
V_CUST_NO := trunc(dbms_random.value(0, 9999999999999999)) || x;*/
V_PHONE_NUM1 := trunc(dbms_random.value(0, 9999999999)) || x; --電話號碼
insert_wrk_bse_at(V_ACCT_SN);
IF IS_OUT_OR_OHTER = 0 THEN
--跑OB數據
--公共
IF V_BUSI_RANDOM = 0 THEN
insert_wrk_asc_wq(V_CUR, V_ACCT_SN);
ELSE
insert_wrk_asc_cm(V_CUR, V_ACCT_SN);
END IF;
insert_SYC_BSE_CP(V_ACCT_SN);
--OUTBOUND
insert_wrk_softp_calllist(V_ACCT_SN, V_PHONE_NUM1);
insert_WRK_SOFTP_IVROBDT(V_PHONE_NUM1);
insert_wrk_softp_ivrobsec(V_ACCT_SN, V_PHONE_NUM1);
insert_wrk_bse_chg(V_CUR, V_ACCT_SN);
insert_wrk_bse_ptp(V_CUR, V_ACCT_SN);
ELSE
--跑效能和產能
--公共
insert_wrk_asc_wq(V_CUR, V_ACCT_SN);
--產能
insert_wrk_nps_cal(V_CUR, V_PHONE_NUM1, V_ACCT_SN);
insert_syc_bse_remark(V_CUR, V_ACCT_SN);
insert_wrk_bse_onekey(V_CUR, V_ACCT_SN);
--效能
insert_wrk_bse_chg(V_CUR, V_ACCT_SN);
insert_wrk_bse_ptp(V_CUR, V_ACCT_SN);
END IF;
COMMIT;
exception
when OTHERS then
CONTINUE;
--記錄錯誤信息
PKG_ph_yxd_cmp_LOG.ERROR_LOG(V_MODULE || '.' || V_ACTION, --存儲過程名
'PROC', --錯誤分類
'PUB', --業務類型
SUBSTRB(SQLCODE, 1, 20), --ORACLE錯誤編號
'催員ID:' || V_CUR.User_Id || ',' ||
'錯誤標示' || SUBSTRB(SQLERRM, 1, 650)); --錯誤信息
END;
end loop;
END LOOP;
end insert_begin;
PROCEDURE insert_wrk_asc_wq(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER) IS
BEGIN
insert into wrk_asc_wq
(ID_KEY,
BUSINESS_TYPE,
ACCT_NO,
ACCT_SN,
GROUP_ID,
USER_ID,
AMOUNT,
STATUS,
COL_LEVEL,
PREV_GROUP_ID,
PREV_USER_ID,
IS_OWNER,
FLOW_TYPE,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE,
LAST_USER,
LAST_USER_PRIORITY,
LAST_USER_DEPT,
VISITABLE_FLAG,
ASSIGN_TYPE,
MARK,
COLOR)
values
(sys_guid(),
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
V_ACCT_SN,
V_ACCT_SN,
'ZS_CD_TEST_EFCT',
P_USER.USER_ID,
'',
'U',
'',
'',
'',
'',
'',
'SYS',
SYSDATE,
'SYS',
SYSDATE,
'',
'',
'',
'',
'',
'',
'');
exception
when OTHERS then
ROLLBACK;
COMMIT;
END insert_wrk_asc_wq;
PROCEDURE insert_wrk_asc_cm(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER) IS
BEGIN
insert into wrk_asc_cm
(ID_KEY,
ACCT_SN,
USER_ID,
ACCT_NO,
BUSINESS_TYPE,
CUST_NAME,
IN_QUEUE_DATE,
PRE_USER_ID,
OVERDUE_DAY,
ENTRUSTING_CAPITAL,
CHARGER_ID,
DEPT_NAME,
ENTRUSTING_COMPANY_NAME,
ENTRUSTING_START_TIME,
ENTRUSTING_END_TIME,
CASE_TYPE,
QUEUE_TYPE,
CREATED_DATE,
CREATED_BY,
UPDATED_DATE,
UPDATED_BY,
AREA_ID,
COMPANY_ID)
values
(sys_guid(),
V_ACCT_SN,
'',
V_ACCT_SN,
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
'',
sysdate,
'',
'328',
'30600.46',
'',
'',
'',
'20180301',
'20181228',
'B',
'Q_B_1516679719515_0',
sysdate,
P_USER.USER_ID,
sysdate,
P_USER.USER_ID,
'SC',
'ZHONGSHI');
exception
when OTHERS then
ROLLBACK;
END insert_wrk_asc_cm;
PROCEDURE insert_SYC_BSE_CP(V_ACCT_SN IN NUMBER) IS
BEGIN
insert into SYC_BSE_CP
(ID_KEY,
BUSINESS_TYPE,
ACCT_NO,
COMPANY_ID,
PERMISSION_START_TIME,
PERMISSION_END_TIME,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE)
values
(sys_guid(),
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
V_ACCT_SN,
'ZHONGSHI',
to_date('27-03-2018', 'dd-mm-yyyy'),
to_date('31-05-2019', 'dd-mm-yyyy'),
'定時客服同步',
sysdate,
'定時客服同步',
sysdate);
exception
when OTHERS then
ROLLBACK;
END insert_SYC_BSE_CP;
PROCEDURE insert_wrk_softp_calllist(V_ACCT_SN IN NUMBER,
V_PHONE_NUM1 IN VARCHAR2) IS
BEGIN
insert into wrk_softp_calllist
(CALL_ID,
TASK_ID,
CALL_STATUS,
CALL_BEGINTIME,
CALL_ANSWERTIME,
CALL_ENDTIME,
AGENT_ID,
AGENT_DN,
PHONE_NUM1,
PHONE_NUM2,
PHONE_NUM3,
PHONE_NUM4,
PHONE_NUM5,
PHONE_NUM6,
PHONE_NUM7,
PHONE_NUM8,
PHONE_NUM9,
PHONE_NUM10,
CUSTOM_DATA1,
CUSTOM_DATA2,
CUSTOM_DATA3,
CUSTOM_DATA4,
CUSTOM_DATA5,
CUSTOM_DATA6,
CUSTOM_DATA7,
CUSTOM_DATA8,
CUSTOM_DATA9,
CUSTOM_DATA10,
THREAD_ID,
CALL_ANI,
CREATE_TIME,
UPDATE_TIME,
APPOINT_BEGIN,
APPOINT_END,
DATA_STATUS,
CUSTOM_ID,
BUSINESS_TYPE)
values
(V_ACCT_SN,
'',
'3',
'',
'',
'',
'',
'',
V_PHONE_NUM1,
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
to_char(sysdate, 'yyyy-MM-dd'),
'',
'',
V_ACCT_SN,
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'));
exception
when OTHERS then
ROLLBACK;
commit;
END insert_wrk_softp_calllist;
PROCEDURE insert_wrk_bse_chg(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER) IS
BEGIN
insert into wrk_bse_chg
(ID_KEY,
USER_ID,
ACCT_SN,
PRE_CASE_TYPE,
CUR_CASE_TYPE,
BUSINESS_MONTH,
CREATED_DATE,
CREATED_BY,
UPDATED_DATE,
UPDATED_BY,
BUSINESS_TYPE,
ACCT_NO)
values
(sys_guid(),
P_USER.USER_ID,
V_ACCT_SN,
decode(trunc(dbms_random.value(0, 5)),
1,
'N',
2,
'B',
3,
'B+',
4,
'A',
0,
'A+',
'N'),
decode(trunc(dbms_random.value(0, 5)),
1,
'N',
2,
'B',
3,
'B+',
4,
'A',
0,
'A+',
'A+'),
to_char(sysdate, 'YYYYMM'),
SYSDATE,
P_USER.USER_ID,
SYSDATE,
P_USER.USER_ID,
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
V_ACCT_SN);
exception
when OTHERS then
ROLLBACK;
COMMIT;
END insert_wrk_bse_chg;
PROCEDURE insert_wrk_bse_ptp(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER) IS
BEGIN
insert into wrk_bse_ptp
(ID_KEY,
BUSINESS_TYPE,
ACCT_SN,
ACTION_CODE,
SEQ_NO,
PAYMENT_METHOD,
ISSMS,
TOLERANCE_DAYS,
PROMISE_AMOUNT,
ACTUAL_AMOUNT,
DUE_DATE,
STATUS,
IS_SHOWN,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE,
PAYSOURCE)
values
(sys_guid(),
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
V_ACCT_SN,
'P', ---------------必須P
V_ACCT_SN,
'',
'N',
'',
'10000',
'',
decode(trunc(dbms_random.value(0, 2)),
0,
'',
1,
to_char((sysdate - 1), 'YYYYMMDD'),
to_char((sysdate - 1), 'YYYYMMDD')),
decode(trunc(dbms_random.value(0, 2)), 0, 'B', 1, 'I', 'I'), -------------必須是I或B
'',
P_USER.USER_ID,
SYSDATE,
P_USER.USER_ID,
SYSDATE,
'');
exception
when OTHERS then
ROLLBACK;
COMMIT;
END insert_wrk_bse_ptp;
PROCEDURE insert_WRK_SOFTP_IVROBDT(V_PHONE_NUM1 IN VARCHAR2) IS
BEGIN
insert into WRK_SOFTP_IVROBDT
(ID_KEY,
ORI_DNIS,
START_TIME,
TALK_TIME,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE,
CALL_STATUS,
INSERT_TIME)
values
(sys_guid(),
V_PHONE_NUM1, ---第一個表的電話
'2018-06-27 10:48:10.944',
'2018-06-27 10:48:10.944',
'',
sysdate,
'',
sysdate,
'',
'');
exception
when OTHERS then
ROLLBACK;
COMMIT;
END insert_WRK_SOFTP_IVROBDT;
PROCEDURE insert_wrk_softp_ivrobsec(V_ACCT_SN IN NUMBER,
V_PHONE_NUM1 IN VARCHAR2) IS
BEGIN
insert into wrk_softp_ivrobsec
(ID_KEY,
AGENT_DN,
AGENT_ID,
ORI_DNIS,
START_TIME,
QUEUE_DURATION,
TALK_DURATION,
RE_STATUS,
CALL_STATUS,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE,
INSERT_TIME,
ACCT_SN)
values
(sys_guid(),
'',
'',
V_PHONE_NUM1, ---第一個表的電話
'',
'1',
'1',
'',
'',
'',
sysdate,
'',
sysdate,
'',
V_ACCT_SN);
exception
when OTHERS then
ROLLBACK;
COMMIT;
END insert_wrk_softp_ivrobsec;
PROCEDURE insert_wrk_bse_at(V_ACCT_SN IN NUMBER) IS
BEGIN
insert into wrk_bse_at
(ID_KEY,
BUSINESS_TYPE,
ACCT_SN,
ACCT_NO,
CUST_NO,
LOAN_NO,
IS_COLLECTION,
MASTER_ACCT,
PRODUCT_TYPE,
PRODUCT_TYPE_DESC,
OVERDUE_DAY,
OVERDUE_STAGE,
OVERDUE_STAGE_CHANGED,
OVERDUE_AMOUNT,
CAPITAL,
BALANCE_CAPITAL,
INTEREST,
COMPOUND_INT,
PENALTY_INTEREST,
PENALTY,
OVERHEAD_EXPENSES,
LOAN_CURRENCY,
LOAN_TERM,
LOAN_DATE,
LOAN_MATURITY_DATE,
LOAN_AMOUNT,
LOAN_STATUS,
CITY,
LOAN_ORGANIZATION,
LOAN_MANAGER,
OVERDUE_DATE,
LEFT_TERM,
ACTUAL_RATE,
REPAYMENT_ACCOUNT,
REPAYMENT_METHOD,
DEFAULT_REPAYMENT_DATE,
LAST_REPAYMENT_DATE,
BARCODE_NO,
SPECIAL_CASE_TYPE,
BILL_BALANCE,
MIN_REPAYMENT_AMOUNT,
CREDIT_LIMIT,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE,
SPECIAL_FLAG,
ACCT_STATUS,
ACCT_STATUS_DESC,
APPLY_NO,
IS_NEW_CORE,
LATEST_UPDATED_DATE,
ANAGE_BRANCH_CODE,
MONTHLY_PAY_AMOUNT,
RANDOM_DIGIT,
ENTRUSTING_COMPANY_NAME,
PROVINCE,
BUSINESS_PATTERN,
SIGN_BRANCH_COMPANY,
ENTRUSTING_TERM,
ENTRUSTING_CASE_CAPITAL,
ENTRUSTING_CAPITAL,
ENTRUSTING_START_TIME,
ENTRUSTING_END_TIME,
ENTRUSTING_TIMES,
CASE_TYPE,
COLLECTION_DAYS,
BP_COUNTS,
BSET_PRESSING,
DELINQUENT_AMOUNT,
SERVICE_FEE,
FORMALITY_FEE,
POLICY_CODE)
values
(sys_guid(),
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
V_ACCT_SN,
V_ACCT_SN,
V_ACCT_SN,
'',
'Y',
'',
'華樓通',
'個貸',
'424',
'M7+',
'',
trunc(dbms_random.value(0, 999999)),
'',
trunc(dbms_random.value(0, 999999)),
'0',
'',
'0',
'',
'',
'',
'36',
'20160105',
'20190105',
trunc(dbms_random.value(0, 999999)),
'',
'濟南',
'濟南1店',
'',
'',
'',
'',
'6226632400691809',
'',
'5',
'',
'',
'',
'',
'',
'',
'sys',
sysdate,
'sys',
sysdate,
'',
'',
'',
'',
'',
null,
'',
'',
'7169',
'華夏信財',
'山東',
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
'衆勢信用',
'55',
'0',
trunc(dbms_random.value(0, 999999)),
'20180517',
'20190720',
'0',
decode(trunc(dbms_random.value(0, 5)),
1,
'N',
2,
'B',
3,
'B+',
4,
'A',
0,
'A+',
'A+'),
'',
'',
'',
'',
'',
'',
trunc(dbms_random.value(0, 999999)));
exception
when OTHERS then
ROLLBACK;
END insert_wrk_bse_at;
PROCEDURE insert_wrk_nps_cal(P_USER IN USER_TYPE,
V_PHONE_NUM1 IN VARCHAR2,
V_ACCT_SN IN NUMBER) IS
BEGIN
insert into wrk_nps_cal
(ID_KEY,
CALL_NUMBER,
CALL_DIRECTION,
AGENT_ID,
AGENT_DN,
CALL_PARTY,
CALL_RESULT,
CALL_DATE,
CREATED_BY,
CREATED_DATE,
UPDATED_BY,
UPDATED_DATE,
LAST_DAY_DATE,
CALL_RECORD_URL,
ACCT_SN,
CONNECT_DATE,
HANG_DATE,
CALL_TYPE,
DIAL_CALLER,
DIAL_PREFIX,
COMPANY_ID,
BUSINESS_TYPE,
ACCT_NO,
CONTACT_ID)
values
(SYS_GUID(),
V_PHONE_NUM1,
'OUT',
'',
'',
'',
'N',
sysdate,
P_USER.USER_ID,
SYSDATE,
P_USER.USER_ID,
SYSDATE,
null,
'',
V_ACCT_SN,
null,
sysdate,
'onekeyCall',
'',
'',
'ZHONGSHI',
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
V_ACCT_SN,
null);
exception
when OTHERS then
ROLLBACK;
END insert_wrk_nps_cal;
PROCEDURE insert_syc_bse_remark(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER) IS
BEGIN
insert into syc_bse_remark
(ID_KEY,
CASE_CODE,
CASE_TYPE,
OPERATION_METHOD,
OPE_NAME,
COMMUNICATION_METHOD,
COM_NAME,
RELATION,
REL_NAME,
CONTACT_PEOPLE,
CON_NAME,
SPECIFIC_CONDITIONS,
SPE_NAME,
CALLING_MODE,
CAL_NAME,
ACTUAL_ANSWER_PEOPLE,
ACT_NAME,
ACTUAL_NUMBER,
COLLECTION_PEOPLE,
COLLECTION_REMARK,
RECORDING_CODE,
PROMISE_REPAY_TIME,
PROMISE_REPAY_AMOUNT,
CASE_DATE,
CREATED_DATE,
CREATED_BY,
UPDATED_DATE,
UPDATED_BY,
COMMUNICATION_OTHER,
SPECIFIC_OTHER,
CO_STATUS,
BUSINESS_TYPE,
ACCT_NO)
values
(SYS_GUID(),
V_ACCT_SN,
'',
'N',
'非溝通類',
'T',
'電話',
'D',
'客戶本人',
'Y',
'是',
'P',
'其他',
'O',
'呼出',
'P',
'父母',
'',
P_USER.USER_ID,
'13501591558-系統-CMP影像查詢',
'',
'',
'',
'',
SYSDATE,
P_USER.USER_ID,
SYSDATE,
P_USER.USER_ID,
'',
'',
'3',
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
V_ACCT_SN);
exception
when OTHERS then
ROLLBACK;
END insert_syc_bse_remark;
PROCEDURE insert_wrk_bse_onekey(P_USER IN USER_TYPE, V_ACCT_SN IN NUMBER) IS
BEGIN
insert into wrk_bse_onekey
(PK_ID,
ACCT_SN,
BUSINESS_TYPE,
CALL_DATE,
CALL_PHONE,
CLOSE_PHONE,
PHONE_COUNT,
CREATED_DATE,
CREATED_BY,
UPDATED_DATE,
UPDATED_BY,
DIAL_CALLER,
DIAL_PREFIX)
values
(SYS_GUID(),
V_ACCT_SN,
decode(V_BUSI_RANDOM,
1,
'RB1',
2,
'RB2',
3,
'RB3',
4,
'RB4',
0,
'RB5',
'RB5'),
'2018-06-04 14:00:57',
'',
'13410124104,07714730472',
'2',
SYSDATE,
P_USER.USER_ID,
SYSDATE,
P_USER.USER_ID,
'',
'');
exception
when OTHERS then
ROLLBACK;
END insert_wrk_bse_onekey;
----更新歷史數據
PROCEDURE update_history_data is
V_ACTION VARCHAR2(50) := 'update_history_data';
--需要更新的電話號碼數據
cursor V_PHONE_LIST IS
select l.phone_num1
from wrk_softp_calllist l
where l.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
BEGIN
update wrk_asc_wq q
set q.created_date = sysdate, q.updated_date = sysdate
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update wrk_asc_cm q
set q.created_date = sysdate,
q.updated_date = sysdate,
Q.IN_QUEUE_DATE = SYSDATE
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update SYC_BSE_CP q
set q.created_date = sysdate, q.updated_date = sysdate
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update wrk_softp_calllist Q
set q.create_time = sysdate,
q.update_time = sysdate,
q.Appoint_Begin = sysdate
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update wrk_bse_chg q
set q.created_date = sysdate,
q.updated_date = sysdate,
q.business_month = to_char(sysdate, 'YYYYMM')
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update wrk_bse_ptp q
set q.created_date = sysdate,
q.updated_date = sysdate,
q.due_date = decode(trunc(dbms_random.value(0, 2)),
0,
'',
1,
to_char((sysdate - 1), 'YYYYMMDD'),
to_char((sysdate - 1), 'YYYYMMDD'))
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update wrk_bse_at q
set q.created_date = sysdate, q.updated_date = sysdate
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update wrk_nps_cal q
set q.created_date = sysdate,
q.updated_date = sysdate,
q.call_date = sysdate,
q.hang_date = sysdate
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update syc_bse_remark q
set q.created_date = sysdate, q.updated_date = sysdate
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
update wrk_bse_onekey q
set q.created_date = sysdate, q.updated_date = sysdate
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
COMMIT;
for V_PHONE IN V_PHONE_LIST LOOP
BEGIN
update WRK_SOFTP_IVROBDT q
set q.created_date = sysdate, q.updated_date = sysdate
where q.ori_dnis = V_PHONE.PHONE_NUM1;
update wrk_softp_ivrobsec q
set q.created_date = sysdate, q.updated_date = sysdate
where q.ori_dnis = V_PHONE.PHONE_NUM1;
exception
when OTHERS then
CONTINUE;
END;
END LOOP;
COMMIT;
exception
when OTHERS then
rollback;
--記錄錯誤信息
PKG_ph_yxd_cmp_LOG.ERROR_LOG(V_MODULE || '.' || V_ACTION, --存儲過程名
'PROC', --錯誤分類
'PUB', --業務類型
SUBSTRB(SQLCODE, 1, 20), --ORACLE錯誤編號
SUBSTRB(SQLERRM, 1, 750)); --錯誤信息
end update_history_data;
----刪除歷史數據
PROCEDURE delete_history_data is
V_ACTION VARCHAR2(50) := 'delete_history_data';
--需要刪除的電話號碼數據
cursor V_PHONE_LIST IS
select l.phone_num1
from wrk_softp_calllist l
where l.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
BEGIN
for V_PHONE IN V_PHONE_LIST LOOP
BEGIN
delete from WRK_SOFTP_IVROBDT q
where q.ori_dnis = V_PHONE.PHONE_NUM1;
delete from wrk_softp_ivrobsec q
where q.ori_dnis = V_PHONE.PHONE_NUM1;
exception
when OTHERS then
CONTINUE;
END;
END LOOP;
COMMIT;
delete from wrk_asc_wq q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from wrk_asc_cm q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from SYC_BSE_CP q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from wrk_softp_calllist Q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from wrk_bse_chg q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from wrk_bse_ptp q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from wrk_bse_at q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from wrk_nps_cal q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from syc_bse_remark q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
delete from wrk_bse_onekey q
where q.business_type in ('RB1', 'RB2', 'RB3', 'RB4', 'RB5');
COMMIT;
exception
when OTHERS then
rollback;
--記錄錯誤信息
PKG_ph_yxd_cmp_LOG.ERROR_LOG(V_MODULE || '.' || V_ACTION, --存儲過程名
'PROC', --錯誤分類
'PUB', --業務類型
SUBSTRB(SQLCODE, 1, 20), --ORACLE錯誤編號
SUBSTRB(SQLERRM, 1, 750)); --錯誤信息
end delete_history_data;
end pkg_xiaomo_test_report_data;
三:直接運行輸入參數就行。