急急急小白求大佬帮忙看下存储过程怎么优化
黄硕。 2019-05-10 02:47:58 CREATE OR REPLACE PACKAGE body ONE_YQLOAD_EXP_VALID_PKG IS
v_blStatus char(1);
v_orgId varchar2(100);
v_feeder varchar2(10);
--执行验证的方法:one驳船公司导入excel
PROCEDURE valid_method(blStatus varchar2,
orgId varchar2,
feeder varchar2) is
begin
/*赋值查询是进口约桥:还是出口约桥*/
v_blStatus := blStatus;
v_orgId := orgId;
v_feeder := feeder;
YQLOAD_COMMON_VALID_PKG.split_SPCI_CNT_SIZE_TYPE; -- /*分割装箱类型/大小*/
/*代码转换*/
YQLOAD_COMMON_VALID_PKG.valid_CNT_OPERATOR(v_orgId,'N'); --箱主没有维护
YQLOAD_COMMON_VALID_PKG.valid_ct_accounts(v_orgId,'N'); --供应商
YQLOAD_COMMON_VALID_PKG.valid_ct_cctm('N'); --箱型尺码不存在
YQLOAD_COMMON_VALID_PKG.valid_transfer_coDe('N'); /*中转类型判断*/
/*用于one校验;Begin*/
YQLOAD_COMMON_VALID_PKG.valid_exp_so(v_blStatus, v_orgId,'N'); --判断so是否存在
--页面大船装货港与大船船名航次的码头不一致:one用到。
/*YQLOAD_COMMON_VALID_PKG.valid_exp_berth_code(v_blStatus, v_orgId, 'N');*/
YQLOAD_COMMON_VALID_PKG.judge_exist_schedule; --相当于锁
If v_feeder is not null Then
YQLOAD_COMMON_VALID_PKG.valid_exp_so_feeder(v_blStatus,
v_orgId,
v_feeder,'N'); /*判断这个箱是不是这个CCA的*/
End If;
YQLOAD_COMMON_VALID_PKG.judge_exist_schedule; --相当于锁
/*导入校验*/
--如果船期没找到,以下校验就不需要了
--valid_imp_schedule;
YQLOAD_COMMON_VALID_PKG.VALID_DISCHARGE_PORT_SAME(v_blStatus,
v_orgId,
'Y'); --one卸货港与配置管理一致需要进行提示。
YQLOAD_COMMON_VALID_PKG.VALID_DESTINAL_PORT_SAME(v_blStatus,
v_orgId,
'Y'); --one目的港与配置管理一致需要进行提示。
YQLOAD_COMMON_VALID_PKG.VALID_VGM_HEAVY(v_blStatus, v_orgId, 'Y'); --是否VGM超过了30480kgs,进行提示
YQLOAD_COMMON_VALID_PKG.VALID_DRY_RF(v_blStatus, v_orgId, 'Y'); --\*是否是干冻柜,如果是则进行备注提示 ,允许导入*\
YQLOAD_COMMON_VALID_PKG.valid_exp_cnt_num_lt(v_blStatus, v_orgId, 'Y'); --集装箱数量小于订舱数量:允许
YQLOAD_COMMON_VALID_PKG.valid_exp_spci_over(v_blStatus, v_orgId, 'N'); --/*超限*/:允许
-- YQLOAD_COMMON_VALID_PKG.valid_exp_cargo_name(v_blStatus, v_orgId, 'N'); -- /*危险品货物必填*/允许
YQLOAD_COMMON_VALID_PKG.valid_exp_so_vessel_voyage(v_blStatus, v_orgId,'N'); ----so号对应的船名航次跟excel不对应:
--YQLOAD_COMMON_VALID_PKG.valid_exp_special_port_same(v_blStatus, v_orgId, 'N'); --/*S/O上的港口信息(卸货港、目的港),属于特殊港口,请认真核对*/:允许
YQLOAD_COMMON_VALID_PKG.valid_exp_block_code_same(v_blStatus,
v_orgId,
'N'); --BLOCK CODE跟系统不一致
YQLOAD_COMMON_VALID_PKG.valid_spgi_temperature_same(v_blStatus,
v_orgId,
'N'); --冻柜设定温度与系统不一致
YQLOAD_COMMON_VALID_PKG.valid_exp_spci_danger_same(v_blStatus,
v_orgId,
'N'); --危险品信息(IMCO/UNDG)与系统不一致
YQLOAD_COMMON_VALID_PKG.valid_exp_handling(v_blStatus, v_orgId, 'N'); --\*特殊配载填写不一致*\
YQLOAD_COMMON_VALID_PKG.valid_exp_port(v_blStatus, v_orgId,'N'); --/*S/O上的港口信息(卸货港、目的港),与系统港口不一致*/:允许
YQLOAD_COMMON_VALID_PKG.valid_exp_Load_Area_Code(v_blStatus,
v_orgId,
'N'); --one大船装货码头与勾选装货码头不一致
YQLOAD_COMMON_VALID_PKG.valid_exp_PRE_DISC_AREA_CODE(v_blStatus,
v_orgId,
'N'); --one系统勾选大船装货码头与系统码头不一致
YQLOAD_COMMON_VALID_PKG.valid_exp_soAndCntNo(v_blStatus, v_orgId, 'N'); --已经驳船卸船:允许
YQLOAD_COMMON_VALID_PKG.valid_exp_cut_time(v_blStatus, v_orgId,'N'); --/*已超过截重时间*/
YQLOAD_COMMON_VALID_PKG.valid_exp_excel_repeat_cntNo(v_blStatus,
v_orgId,'N'); --excel中存在箱号相同的数据
--YQLOAD_COMMON_VALID_PKG.valid_exp_spci_temperature(v_blStatus, v_orgId, 'N'); --冻柜设定温度必填:允许
--YQLOAD_COMMON_VALID_PKG.valid_exp_spci_danger(v_blStatus, v_orgId, 'N'); --危险品信息(IMCO/UNDG)必填:允许
YQLOAD_COMMON_VALID_PKG.valid_exp_spci_cnt_not_eq(v_blStatus,
v_orgId,
'N'); --订舱信息的箱型尺码不匹配:允许
YQLOAD_COMMON_VALID_PKG.valid_exp_spci_cnt_num_gt(v_blStatus, v_orgId,'N'); --集装箱数量大于订舱数量
YQLOAD_COMMON_VALID_PKG.valid_exp_yq_send(v_blStatus, v_orgId); --是否已经约桥
/*不需要校验 valid_spci_cnt_size_type_3;*/
YQLOAD_COMMON_VALID_PKG.valid_exp_upload_time(v_blStatus, v_orgId); --已超过驳船上传资料时间:允许导入
YQLOAD_COMMON_VALID_PKG.get_ids(v_blStatus, v_orgId); --/*获取id*/
YQLOAD_COMMON_VALID_PKG.ltrim_special; -- /*去掉空格*/
/*用于one校验;Begin*/
end;
END ONE_YQLOAD_EXP_VALID_PKG;