FDM基础层:根据主题(需求),将源数据加工集成,形成业务明细表–宽表
熟悉业务
当我们的工作来到基础层,我们首先要做的是跟甲方沟通,要求甲方提供需求,同时我们应该熟悉数据字典,熟悉业务。
模型设计
模型设计(字段取数来源 字段加工规则 字段数据类型)
梳理映射关系
梳理映射关系:字段 源–目标的关系,字段的加工逻辑,表关联逻辑,过滤逻辑,伪代码。
我们做的项目是存款项目,需要梳理映射文档。以下是甲方提供的需求,我们需要从源数据中将对应的字段找出。
右边是甲方需要的字段,这些字段分布在两个表中,我们需要花时间找出他们来,最后找完的结果如下。
梳理完映射文档,我们需要建立明细表–宽表。
加工宽表
问甲方要建表语句
-- Create table
create table F_AGR_DEP_SAP_ACCT
(
acct_no VARCHAR2(10),
curr_cd VARCHAR2(20),
curr_iden VARCHAR2(1),
acct_typ VARCHAR2(30),
pdp_cd VARCHAR2(20),
dep_typ VARCHAR2(4),
acct_char VARCHAR2(40),
cust_no VARCHAR2(20),
cust_name VARCHAR2(100),
ibd_typ VARCHAR2(4),
ibd_no VARCHAR2(20),
card_no VARCHAR2(19),
conntr_no VARCHAR2(20),
org_no VARCHAR2(9),
ases_org_no VARCHAR2(9),
opac_org_no VARCHAR2(9),
opac_amt NUMBER(20,2),
opac_dt VARCHAR2(80),
opac_perm_no VARCHAR2(15),
opac_trl_no VARCHAR2(12),
cacct_org_no VARCHAR2(9),
cacct_dt VARCHAR2(80),
cacct_trl_no VARCHAR2(12),
intc_flg VARCHAR2(1),
curr_char VARCHAR2(1),
aval_dt VARCHAR2(80),
cacl_dt VARCHAR2(80),
fs_sts VARCHAR2(1),
prds_instn_dpdw_flg VARCHAR2(1),
drw_typ VARCHAR2(4),
int_tax_flg VARCHAR2(1),
acct_ctl_sts VARCHAR2(50),
dpdw_rang VARCHAR2(1),
com_od_flg VARCHAR2(1),
od_int_days_n INTEGER,
ddp_pdt NUMBER(20,2),
ddp_acct_sts VARCHAR2(3),
ddp_od_max NUMBER(20,2),
od_int_amt NUMBER(20,2),
frz_amt NUMBER(20,2),
intc_amt NUMBER(20,2),
avl_bal NUMBER(20,2),
acct_bal NUMBER(20,2),
int_bal NUMBER(20,2),
int_acct_no VARCHAR2(32),
ltm_pdtc_dt VARCHAR2(80),
ltm_intc_dt VARCHAR2(80),
ltm_tx_dt VARCHAR2(80),
actu_pdt NUMBER(20,2),
od_tm INTEGER,
od_pdt NUMBER(20,2),
od_amt NUMBER(20,2),
od_days INTEGER,
od_int NUMBER(20,2),
ovdln_od_int NUMBER(20,2),
od_lg_flg VARCHAR2(1),
today_od_csh_amt NUMBER(20,2),
ngo_dep_fl_totl INTEGER,
ngo_int_acct_no VARCHAR2(32),
ngo_aval_dt VARCHAR2(80),
ngo_cncl_dt VARCHAR2(80),
trt_val NUMBER(12,6),
svc_bal NUMBER(20,2),
od_csh_amt NUMBER(20,2),
intr_cod VARCHAR2(2),
intr NUMBER(12,6),
fltr_fvr_sign VARCHAR2(1),
fltr_fvr NUMBER(12,6),
sleep_dt VARCHAR2(80),
sleep_sts VARCHAR2(2),
less_intr_flg VARCHAR2(1),
mafe_flg VARCHAR2(1),
mafe_owe_amt NUMBER(20,2),
mafe_year VARCHAR2(2),
sleep_flg VARCHAR2(1),
insp_flg VARCHAR2(1),
risk_lvl VARCHAR2(1),
psbk_no INTEGER,
psbk_prt_no VARCHAR2(13),
etl_dt DATE
);
-- Add comments to the columns
comment on column F_AGR_DEP_SAP_ACCT.acct_no
is '账号';
comment on column F_AGR_DEP_SAP_ACCT.curr_cd
is '币种代码';
comment on column F_AGR_DEP_SAP_ACCT.curr_iden
is '钞汇类别';
comment on column F_AGR_DEP_SAP_ACCT.acct_typ
is '账别';
comment on column F_AGR_DEP_SAP_ACCT.pdp_cd
is '产品代码';
comment on column F_AGR_DEP_SAP_ACCT.dep_typ
is '存款种类';
comment on column F_AGR_DEP_SAP_ACCT.acct_char
is '账号性质';
comment on column F_AGR_DEP_SAP_ACCT.cust_no
is '客户编号';
comment on column F_AGR_DEP_SAP_ACCT.cust_name
is '客户姓名';
comment on column F_AGR_DEP_SAP_ACCT.ibd_typ
is '凭证种类';
comment on column F_AGR_DEP_SAP_ACCT.ibd_no
is '凭证号码';
comment on column F_AGR_DEP_SAP_ACCT.card_no
is '卡号';
comment on column F_AGR_DEP_SAP_ACCT.conntr_no
is '联系人编号';
comment on column F_AGR_DEP_SAP_ACCT.org_no
is '机构编号';
comment on column F_AGR_DEP_SAP_ACCT.ases_org_no
is '考核机构';
comment on column F_AGR_DEP_SAP_ACCT.opac_org_no
is '开户机构号';
comment on column F_AGR_DEP_SAP_ACCT.opac_amt
is '开户金额';
comment on column F_AGR_DEP_SAP_ACCT.opac_dt
is '开户日期';
comment on column F_AGR_DEP_SAP_ACCT.opac_perm_no
is '开户许可证号';
comment on column F_AGR_DEP_SAP_ACCT.opac_trl_no
is '开户柜员号';
comment on column F_AGR_DEP_SAP_ACCT.cacct_org_no
is '销户机构号';
comment on column F_AGR_DEP_SAP_ACCT.cacct_dt
is '销户日期';
comment on column F_AGR_DEP_SAP_ACCT.cacct_trl_no
is '销户柜员号';
comment on column F_AGR_DEP_SAP_ACCT.intc_flg
is '计息标志';
comment on column F_AGR_DEP_SAP_ACCT.curr_char
is '钞汇属性';
comment on column F_AGR_DEP_SAP_ACCT.aval_dt
is '起用日期';
comment on column F_AGR_DEP_SAP_ACCT.cacl_dt
is '注销日期';
comment on column F_AGR_DEP_SAP_ACCT.fs_sts
is '综合理财标志';
comment on column F_AGR_DEP_SAP_ACCT.prds_instn_dpdw_flg
is '约定机构存取标志';
comment on column F_AGR_DEP_SAP_ACCT.drw_typ
is '支取方式';
comment on column F_AGR_DEP_SAP_ACCT.int_tax_flg
is '利息税收税标志';
comment on column F_AGR_DEP_SAP_ACCT.acct_ctl_sts
is '帐户控制状态';
comment on column F_AGR_DEP_SAP_ACCT.dpdw_rang
is '通兑范围';
comment on column F_AGR_DEP_SAP_ACCT.com_od_flg
is '法人账户透支标志';
comment on column F_AGR_DEP_SAP_ACCT.od_int_days_n
is '应收透支息透支天数';
comment on column F_AGR_DEP_SAP_ACCT.ddp_pdt
is '活存积数';
comment on column F_AGR_DEP_SAP_ACCT.ddp_acct_sts
is '账户状态';
comment on column F_AGR_DEP_SAP_ACCT.ddp_od_max
is '账户最大透支额';
comment on column F_AGR_DEP_SAP_ACCT.od_int_amt
is '计透支息金额';
comment on column F_AGR_DEP_SAP_ACCT.frz_amt
is '冻结金额';
comment on column F_AGR_DEP_SAP_ACCT.intc_amt
is '计息金额';
comment on column F_AGR_DEP_SAP_ACCT.avl_bal
is '可用金额';
comment on column F_AGR_DEP_SAP_ACCT.acct_bal
is '账户余额';
comment on column F_AGR_DEP_SAP_ACCT.int_bal
is '利息';
comment on column F_AGR_DEP_SAP_ACCT.int_acct_no
is '收息账号';
comment on column F_AGR_DEP_SAP_ACCT.ltm_pdtc_dt
is '上次计算积数日';
comment on column F_AGR_DEP_SAP_ACCT.ltm_intc_dt
is '上次计息日';
comment on column F_AGR_DEP_SAP_ACCT.ltm_tx_dt
is '上次交易日期';
comment on column F_AGR_DEP_SAP_ACCT.actu_pdt
is '实积数';
comment on column F_AGR_DEP_SAP_ACCT.od_tm
is '透支次数';
comment on column F_AGR_DEP_SAP_ACCT.od_pdt
is '透支积数';
comment on column F_AGR_DEP_SAP_ACCT.od_amt
is '透支金额';
comment on column F_AGR_DEP_SAP_ACCT.od_days
is '透支天数';
comment on column F_AGR_DEP_SAP_ACCT.od_int
is '透支息';
comment on column F_AGR_DEP_SAP_ACCT.ovdln_od_int
is '催收透支息';
comment on column F_AGR_DEP_SAP_ACCT.od_lg_flg
is '透支科目标志';
comment on column F_AGR_DEP_SAP_ACCT.today_od_csh_amt
is '当日累计透支取现金额';
comment on column F_AGR_DEP_SAP_ACCT.ngo_dep_fl_totl
is '协议存款档数';
comment on column F_AGR_DEP_SAP_ACCT.ngo_int_acct_no
is '协议收息账号';
comment on column F_AGR_DEP_SAP_ACCT.ngo_aval_dt
is '协定存款设定日期';
comment on column F_AGR_DEP_SAP_ACCT.ngo_cncl_dt
is '协定存款取消日期';
comment on column F_AGR_DEP_SAP_ACCT.trt_val
is '税率';
comment on column F_AGR_DEP_SAP_ACCT.svc_bal
is '手续费';
comment on column F_AGR_DEP_SAP_ACCT.od_csh_amt
is '累计透支取现金额';
comment on column F_AGR_DEP_SAP_ACCT.intr_cod
is '利率依据';
comment on column F_AGR_DEP_SAP_ACCT.intr
is '利率';
comment on column F_AGR_DEP_SAP_ACCT.fltr_fvr_sign
is '浮动利率加减码符号位';
comment on column F_AGR_DEP_SAP_ACCT.fltr_fvr
is '浮动利率加减码';
comment on column F_AGR_DEP_SAP_ACCT.sleep_dt
is '睡眠设置日期';
comment on column F_AGR_DEP_SAP_ACCT.sleep_sts
is '睡眠状态';
comment on column F_AGR_DEP_SAP_ACCT.less_intr_flg
is '免执行小额利率标志';
comment on column F_AGR_DEP_SAP_ACCT.mafe_flg
is '免收小额管理费标志';
comment on column F_AGR_DEP_SAP_ACCT.mafe_owe_amt
is '小额管理费欠收金额';
comment on column F_AGR_DEP_SAP_ACCT.mafe_year
is '小额管理费扣收年份';
comment on column F_AGR_DEP_SAP_ACCT.sleep_flg
is '不动户处理标志';
comment on column F_AGR_DEP_SAP_ACCT.insp_flg
is '年检标志';
comment on column F_AGR_DEP_SAP_ACCT.risk_lvl
is '风险等级';
comment on column F_AGR_DEP_SAP_ACCT.psbk_no
is '册号';
comment on column F_AGR_DEP_SAP_ACCT.psbk_prt_no
is '存单存折印刷号';
加工宽表 写存储过程,存储过程我们需要注意的是。
1.insert不能一条一条插入。需要使用select插入。插入的字段需要与刚刚建立的表字段相同顺序一致字段属性一致。
2.根据甲方提供的需求与项目主题,写出伪代码,
(SAACNAMT a left join SAACNACN b on
a.FK_SAACN_KEY=b.SA_ACCT_NO
where substr(a.SA_PDP_CODE,4,3)='SA1' and substr(b.SA_CUST_NO,1,1)='1')
UNION
(SAACNAMT a left join SAACNACN b on
a.FK_SAACN_KEY=b.SA_ACCT_NO
where substr(a.SA_PDP_CODE,4,3)='SA0')
根据伪代码写出存储过程,此处给出一个简略的存储过程
CREATE OR REPLACE PROCEDURE SP_F_AGR_DEP_SAP_ACCT IS
/*****************************************************************************
程序名称:SP_F_AGR_DEP_SAP_ACCT
功能描述:个人活期账户信息宽表
目 标 表:FDM.F_AGR_DEP_SAE_ACCT 活期企业存款账户信息
源 表:SDM.SAACNAMT 活存资金档
SDM.SAACNACN 活期存款主档
创 建 人:孙云龙
创建日期:20240620
修改日期:
修改人员:
修改原因:
******************************************************************************/
/*存储过程变量定义*/
V_STARTTIME DATE; --开始时间
V_ENDTTIME DATE; --结束时间
V_ROWCOUNT INT; --记录数
V_SQLCODE VARCHAR2(200);
V_SQLERRM VARCHAR2(1000);
V_SPNAME VARCHAR2(200);
/* 程序开始执行*/
BEGIN
/*变量赋值*/
V_STARTTIME:=sysdate;
V_SPNAME:='SP_F_AGR_DEP_SAP_ACCT';
/*插入宽表数据*/
INSERT INTO FDS.F_AGR_DEP_SAP_ACCT
SELECT
a.FK_SAACN_KEY ,--
a.SA_CURR_COD ,-- 币别
a.SA_CURR_IDEN ,-- 钞汇鉴别
b.SA_ACCT_TYP ,-- 帐别2
a.SA_PDP_CODE ,-- 产品代码
b.SA_DEP_TYP ,-- 存款种类
b.SA_ACCT_CHAR ,-- 帐户性质
b.SA_CUST_NO ,-- 客户编号
b.SA_CUST_NAME ,-- 客户名称
b.SA_DOC_TYP ,-- 凭证种类(DOC)
b.SA_PSBK_PRT_NO1 ,-- 存折印刷号1
b.SA_CARD_NO ,-- 卡号(CARD)
b.SA_CONNTR_NO ,-- 联系人编号
a.SA_BELONG_INSTN_COD ,-- 账户归属机构
a.SA_ASES_INSTN_COD ,-- 考核机构
b.SA_OPAC_INSTN_NO ,-- 开户机构号(OPAC)
b.SA_OPAC_AMT ,-- 开户金额
b.SA_OPAC_DT ,-- 开户日期-X8
b.SA_OPAC_PERM_NO ,-- 开户许可证号
b.SA_OPAC_TLR_NO ,-- 开户柜员号
b.SA_CACCT_INSTN_NO ,-- 销户机构号
b.SA_CACCT_DT ,-- 销户日期(CACCT)
b.SA_CACCT_TLR_NO ,-- 销户柜员号
b.SA_INTC_FLG ,-- 计息标志
b.SA_CURR_TYP ,-- 钞汇属性
b.SA_AVAL_DT ,-- 起用日期(AVAL)
'18991231' ,--
b.SA_FS_STS ,-- 综合理财标志
NULL ,--
b.SA_DRW_TYP ,-- 支取方式
b.SA_INT_TAX_FLG ,-- 利息税计税标志
b.SA_ACCT_CTL_STS ,-- 帐户控制状态
b.SA_DW_RANG ,-- 通兑范围
a.SA_COM_OD_FLG ,-- 法人帐户透支标志
a.SA_OD_INT_DAYS_N ,-- 应收透支息透支天数
a.SA_DDP_PDT ,-- 活存积数
a.SA_DDP_ACCT_STS ,-- 活存帐户状态
a.SA_DDP_OD_MAX ,-- 活存帐户最大透支额
a.SA_OD_INT_AMT ,-- 计透支息金额
a.SA_FRZ_AMT ,-- 法律冻结金额
a.SA_INTC_AMT ,-- 贷方计息金额
a.SA_AVL_BAL ,-- 可用余额(AVL)
a.SA_ACCT_BAL ,-- 帐户余额
a.SA_INT ,-- 利息(16位)
a.SA_INT_ACCT_NO ,-- 利息帐号
a.SA_LTM_PDTC_DT ,-- 上次计算积数日
a.SA_LTM_INTC_DT ,-- 上次计息日
a.SA_LTM_TX_DT ,-- 上次交易日期
a.SA_ACTU_PDT ,-- 实积数
a.SA_OD_TM ,-- 透支次数
a.SA_OD_PDT ,-- 透支积数(OD)
a.SA_OD_AMT ,-- 透支金额
a.SA_OD_DAYS_N ,-- 透支天数
a.SA_OD_INT ,-- 透支息(16位)
a.SA_OVDLN_OD_INT ,-- 催收透支息(16位)
a.SA_OD_LG_FLG ,-- 透支科目标志
a.SA_TODAY_OD_CSH_AMT ,-- 当日累计透支取现金额
a.SA_NGO_DEP_FL_TOTL ,-- 协议存款档数
a.SA_NGO_INT_ACCT_NO ,-- 协议利息帐号
a.SA_NGO_AVAL_DT ,-- 协定存款设定日期
a.SA_NGO_CNCL_DT ,-- 协定存款取消日期
a.SA_TRT_VAL ,-- 税率(VAL)
a.SA_SVC ,-- 手续费
a.SA_OD_CSH_AMT ,-- 累计透支取现金额(CSH)
a.SA_INTR_COD ,-- 利率代码
a.SA_INTR ,-- 利率
a.SA_FLTR_FVR_SIGN ,-- 浮动利率加减码符号位
a.SA_FLTR_FVR ,-- 浮动利率加减码(SC)
a.SA_SLEEP_DATE ,-- 睡眠设置日期
a.SA_SLEEP_STS ,-- 睡眠状态
a.SA_LESS_INTR_FLG ,-- 免执行小额利率标志
a.SA_MAFE_FLG ,-- 免收管理费标志
a.SA_MAFE_OWE_AMT ,-- 管理费欠费金额
a.SA_MAFE_YEAR ,-- 管理费扣收年份
b.SA_SLEEP_PROC_FLG ,-- 不动户处理标志
b.SA_INSP_FLG ,-- 年检标志
b.SA_RISK_LVL ,-- 风险等级
b.SA_PSBK_NO ,-- 存折册号
b.SA_PSBK_PRT_NO , -- 存折印刷号
a.etldt
FROM SDS.SAACNAMT a left join SDS.SAACNACN b on
a.FK_SAACN_KEY = b.SA_ACCT_NO --账号
where substr(a.SA_PDP_CODE, 4, 3) = 'SA1' --产品编号 活期
and substr(b.SA_CUST_NO, 1, 1) = '1' --1开头的客户编号 个人客户
UNION
SELECT
a.FK_SAACN_KEY ,--
a.SA_CURR_COD ,-- 币别
a.SA_CURR_IDEN ,-- 钞汇鉴别
b.SA_ACCT_TYP ,-- 帐别2
a.SA_PDP_CODE ,-- 产品代码
b.SA_DEP_TYP ,-- 存款种类
b.SA_ACCT_CHAR ,-- 帐户性质
b.SA_CUST_NO ,-- 客户编号
b.SA_CUST_NAME ,-- 客户名称
b.SA_DOC_TYP ,-- 凭证种类(DOC)
b.SA_PSBK_PRT_NO1 ,-- 存折印刷号1
b.SA_CARD_NO ,-- 卡号(CARD)
b.SA_CONNTR_NO ,-- 联系人编号
a.SA_BELONG_INSTN_COD ,-- 账户归属机构
a.SA_ASES_INSTN_COD ,-- 考核机构
b.SA_OPAC_INSTN_NO ,-- 开户机构号(OPAC)
b.SA_OPAC_AMT ,-- 开户金额
b.SA_OPAC_DT ,-- 开户日期-X8
b.SA_OPAC_PERM_NO ,-- 开户许可证号
b.SA_OPAC_TLR_NO ,-- 开户柜员号
b.SA_CACCT_INSTN_NO ,-- 销户机构号
b.SA_CACCT_DT ,-- 销户日期(CACCT)
b.SA_CACCT_TLR_NO ,-- 销户柜员号
b.SA_INTC_FLG ,-- 计息标志
b.SA_CURR_TYP ,-- 钞汇属性
b.SA_AVAL_DT ,-- 起用日期(AVAL)
'18991231' ,--
b.SA_FS_STS ,-- 综合理财标志
NULL ,--
b.SA_DRW_TYP ,-- 支取方式
b.SA_INT_TAX_FLG ,-- 利息税计税标志
b.SA_ACCT_CTL_STS ,-- 帐户控制状态
b.SA_DW_RANG ,-- 通兑范围
a.SA_COM_OD_FLG ,-- 法人帐户透支标志
a.SA_OD_INT_DAYS_N ,-- 应收透支息透支天数
a.SA_DDP_PDT ,-- 活存积数
a.SA_DDP_ACCT_STS ,-- 活存帐户状态
a.SA_DDP_OD_MAX ,-- 活存帐户最大透支额
a.SA_OD_INT_AMT ,-- 计透支息金额
a.SA_FRZ_AMT ,-- 法律冻结金额
a.SA_INTC_AMT ,-- 贷方计息金额
a.SA_AVL_BAL ,-- 可用余额(AVL)
a.SA_ACCT_BAL ,-- 帐户余额
a.SA_INT ,-- 利息(16位)
a.SA_INT_ACCT_NO ,-- 利息帐号
a.SA_LTM_PDTC_DT ,-- 上次计算积数日
a.SA_LTM_INTC_DT ,-- 上次计息日
a.SA_LTM_TX_DT ,-- 上次交易日期
a.SA_ACTU_PDT ,-- 实积数
a.SA_OD_TM ,-- 透支次数
a.SA_OD_PDT ,-- 透支积数(OD)
a.SA_OD_AMT ,-- 透支金额
a.SA_OD_DAYS_N ,-- 透支天数
a.SA_OD_INT ,-- 透支息(16位)
a.SA_OVDLN_OD_INT ,-- 催收透支息(16位)
a.SA_OD_LG_FLG ,-- 透支科目标志
a.SA_TODAY_OD_CSH_AMT ,-- 当日累计透支取现金额
a.SA_NGO_DEP_FL_TOTL ,-- 协议存款档数
a.SA_NGO_INT_ACCT_NO ,-- 协议利息帐号
a.SA_NGO_AVAL_DT ,-- 协定存款设定日期
a.SA_NGO_CNCL_DT ,-- 协定存款取消日期
a.SA_TRT_VAL ,-- 税率(VAL)
a.SA_SVC ,-- 手续费
a.SA_OD_CSH_AMT ,-- 累计透支取现金额(CSH)
a.SA_INTR_COD ,-- 利率代码
a.SA_INTR ,-- 利率
a.SA_FLTR_FVR_SIGN ,-- 浮动利率加减码符号位
a.SA_FLTR_FVR ,-- 浮动利率加减码(SC)
a.SA_SLEEP_DATE ,-- 睡眠设置日期
a.SA_SLEEP_STS ,-- 睡眠状态
a.SA_LESS_INTR_FLG ,-- 免执行小额利率标志
a.SA_MAFE_FLG ,-- 免收管理费标志
a.SA_MAFE_OWE_AMT ,-- 管理费欠费金额
a.SA_MAFE_YEAR ,-- 管理费扣收年份
b.SA_SLEEP_PROC_FLG ,-- 不动户处理标志
b.SA_INSP_FLG ,-- 年检标志
b.SA_RISK_LVL ,-- 风险等级
b.SA_PSBK_NO ,-- 存折册号
b.SA_PSBK_PRT_NO, -- 存折印刷号
a.etldt
FROM SDS.SAACNAMT a
left join SDS.SAACNACN b
on a.FK_SAACN_KEY = b.SA_ACCT_NO
where substr(a.SA_PDP_CODE, 4, 3) = 'SA0'; --个人活期 2020年之前
V_ROWCOUNT:=sql%rowcount; --获取上一条dml语句执行条数
commit;
V_ENDTTIME:=sysdate; --结束时间
--游标 显式游标 定义 打开 遍历 关闭
--隐式游标 dml语句
--4个属性: found notfound isopen 游标名%rowcount
/*插入正常日志*/
insert into splog
values (V_SPNAME,NULL,NULL,V_STARTTIME,V_ENDTTIME,
V_ROWCOUNT,'正常' );
commit;
/* 异常处理 */
EXCEPTION
WHEN OTHERS THEN --捕获系统所有异常
V_SQLCODE:=sqlcode;
V_SQLERRM:=sqlerrm;
/*插入异常日志*/
insert into splog
values (V_SPNAME,V_SQLCODE,V_SQLERRM,V_STARTTIME,V_ENDTTIME,
0,'异常' );
commit;
END;
在实际运行中,一般都是挂后台的,如果出错误我们没法看到实际的错误报告,因此我们需要将运行记录写进运行日志里,我们的运行日志需要获取以下信息,确保我们跑批结束后能及时发现并且定位错误信息。
存储过程名: V_SPNAME
错误代码: V_SQLCODE
错误信息: V_SQLERRM
存储过程开始时间: V_STARTTIME
存储过程结束时间: V_ENDTTIME
执行任务条数: V_ROWCOUNT
运行状态: ‘正常/异常’
测试提交
使用debug确定存储过程的每一步都没有出错即可