- 浏览: 234437 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
netwelfare:
文章的格式有点乱啊,看起来很费事啊。推荐看这个系列的json教 ...
java 操作JSON -
yangqingandjay:
ijoi刚好一个月[color=orange][align=c ...
spring 定时器配置 -
Jxdwuao:
不错, 很好用
spring 定时器配置 -
1870702720:
3楼说的可以,之前我一直以为想配置在一个定时器中,可是实现不了 ...
spring 定时器配置 -
taiwei.peng:
你可以配置两个定时器,这是我个人的想法,仅供参考。
spring 定时器配置
--01 删除表中的现有数据
TRUNCATE TABLE TEMP_WAYBILL_CYX;
--02将附件中的运单号拷贝到TEMP_WAYBILL_CYX 表中
--03 插入过度表值
DECLARE
A DATE := DATE '2016-02-26';
B DATE := DATE '2016-02-26';
C DATE := DATE '2016-02-26';
D DATE := DATE '2016-02-27';
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_SRCZONECODE_CYX';
FOR Q IN 1 .. 15 LOOP
INSERT INTO TEMP_SRCZONECODE_CYX
(WAYBILL_NO, SRC_ZONE_CODE, DEST_ZONE_CODE)
SELECT /*+ PARALLEL(T,5) */
T.WAYBILL_NO, T.SRC_ZONE_CODE, T.DEST_ZONE_CODE
FROM TT_WAYBILL_INFO T
WHERE EXISTS
(SELECT 1 FROM TEMP_WAYBILL_CYX WHERE WAYBILL_NO = T.WAYBILL_NO)
AND T.REPORT_DT = A;
COMMIT;
A := A + 1;
END LOOP;
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_RESULT_CYX';
FOR Q IN 1 .. 15 LOOP
INSERT INTO TEMP_RESULT_CYX
(WAYBILL_NO,
SRC_ZONE_CODE,
DEST_ZONE_CODE,
ROUTE_INDEX,
BATCH_TYPE,
S_ZONE_CODE,
S_BATCH_CODE,
S_OPT_TM,
S_DELIVERY_TM,
D_ZONE_CODE,
D_BATCH_CODE,
D_OPT_TM,
D_DELIVERY_TM,
D_S_OPT,
D_S_DIFF,
D_VEHICLE_NO,
VEHICLE_AREA,
D_BAR_OPT_CODE,
STAY_WHY_NAME,
EXCEPTION_STATUS,
DUTY_STATUS)
SELECT /*+ INDEX(IPK_WAYBILL_ROUTE_INFO) parallel(DT,5)*/
DT.WAYBILL_NO AS 运单号,
C.SRC_ZONE_CODE AS 始发网点,
C.DEST_ZONE_CODE AS 目的网点,
DT.ROUTE_INDEX AS 路由序号,
(CASE DT.D_BATCH_TYPE
WHEN 1 THEN
'收件班次'
WHEN 2 THEN
'收件仓库班次'
WHEN 3 THEN
'中转班次'
WHEN 4 THEN
'运输班次'
WHEN 5 THEN
'派件仓库班次'
WHEN 6 THEN
'派件班次'
ELSE
''
END) AS 班次类型,
DT.S_ZONE_CODE AS 静态网点,
DT.S_BATCH_CODE AS 静态班次,
DT.S_OPT_TM AS 静态操作时间,
DT.S_DELIVERY_TM AS 静态派送时效,
DT.D_ZONE_CODE AS 实际网点,
DT.D_BATCH_BATCH_CODE AS 实际班次,
DT.D_OPT_TM AS 动态操作时间,
DT.D_DELIVERY_TM AS 动态派送时效,
NVL(ROUND(TO_NUMBER(DT.D_OPT_TM - DT.S_OPT_TM) * 1440), 0) || 'm' AS 时差,
NVL(ROUND(TO_NUMBER(DT.S_DELIVERY_TM - DT.D_DELIVERY_TM) * 1440),
0) || 'm' AS 时效差值,
DT.D_VEHICLE_NO AS 车标号,
'',
DT.D_BAR_OPT_CODE AS 操作员,
S.STAY_WHY_NAME AS 异常原因,
T.EXCEPTION_NAME AS 异常状态,
(CASE DT.DUTY_STATUS
WHEN '0' THEN
''
WHEN '1' THEN
'仓库发件晚点'
WHEN '2' THEN
'中转发件晚点'
WHEN '3' THEN
'运输到达晚点'
WHEN '4' THEN
'仓库出仓晚点'
WHEN '5' THEN
'延误派送'
ELSE
'其他'
END) AS 定责状态
FROM TT_WAYBILL_ROUTE_INFO DT
LEFT JOIN ompweb.Tm_Bar_Stay_Why_Code S
ON DT.EXCEPTION_REASON = S.STAY_WHY_CODE
LEFT JOIN TEMP_EXCEPTION_STATUS T
ON NVL(T.EXCEPTION_STATUS, 0) =
SUBSTR(DT.EXCEPTION_STATUS,
1,
INSTR(DT.EXCEPTION_STATUS || ',', ',') - 1)
INNER JOIN TEMP_SRCZONECODE_CYX C
ON DT.WAYBILL_NO = C.WAYBILL_NO
WHERE DT.REPORT_DT = B;
COMMIT;
B := B + 1;
END LOOP;
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_CONVE_PLATENUM';
FOR Q IN 1 .. 15 LOOP
INSERT INTO TEMP_CONVE_PLATENUM
(VEHICLE_AREA, PLATE_NUM)
SELECT T.VEHICLE_AREA, T.PLATE_NUM
FROM TT_CONVEYANCE_SHOW T
WHERE T.PLAN_DATE >= C
AND T.PLAN_DATE < D;
COMMIT;
C := C + 1;
D := D + 1;
END LOOP;
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_CONVE_VEHICLEAREA';
INSERT INTO TEMP_CONVE_VEHICLEAREA
(VEHICLE_AREA, PLATE_NUM, RN)
SELECT *
FROM (SELECT T.VEHICLE_AREA,
T.PLATE_NUM,
ROW_NUMBER() OVER(PARTITION BY PLATE_NUM ORDER BY PLATE_NUM) RN
FROM TEMP_CONVE_PLATENUM T)
WHERE RN = 1;
COMMIT;
END;
--05 修改车辆管理区
MERGE INTO TEMP_RESULT_CYX T
USING TEMP_CONVE_VEHICLEAREA R
ON (T.D_VEHICLE_NO = R.PLATE_NUM)
WHEN MATCHED THEN
UPDATE SET T.VEHICLE_AREA = R.VEHICLE_AREA;
COMMIT;
--06 查询结果给用户
SELECT WAYBILL_NO AS 运单号,
SRC_ZONE_CODE AS 始发网点,
DEST_ZONE_CODE AS 目的网点,
ROUTE_INDEX AS 路由序号,
BATCH_TYPE AS 班次类型,
S_ZONE_CODE AS 静态网点,
S_BATCH_CODE AS 静态班次,
S_OPT_TM AS 静态操作时间,
S_DELIVERY_TM AS 静态派送时效,
D_ZONE_CODE AS 实际网点,
D_BATCH_CODE AS 实际班次,
D_OPT_TM AS 动态操作时间,
D_DELIVERY_TM AS 动态派送时效,
D_S_OPT AS 时差,
D_S_DIFF AS 时效差值,
D_VEHICLE_NO AS 车标号,
VEHICLE_AREA AS 车辆管理方,
D_BAR_OPT_CODE AS 操作员,
STAY_WHY_NAME AS 异常原因,
EXCEPTION_STATUS AS 异常状态,
DUTY_STATUS AS 定责状态
FROM TEMP_RESULT_CYX
ORDER BY WAYBILL_NO, ROUTE_INDEX;
TRUNCATE TABLE TEMP_WAYBILL_CYX;
--02将附件中的运单号拷贝到TEMP_WAYBILL_CYX 表中
--03 插入过度表值
DECLARE
A DATE := DATE '2016-02-26';
B DATE := DATE '2016-02-26';
C DATE := DATE '2016-02-26';
D DATE := DATE '2016-02-27';
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_SRCZONECODE_CYX';
FOR Q IN 1 .. 15 LOOP
INSERT INTO TEMP_SRCZONECODE_CYX
(WAYBILL_NO, SRC_ZONE_CODE, DEST_ZONE_CODE)
SELECT /*+ PARALLEL(T,5) */
T.WAYBILL_NO, T.SRC_ZONE_CODE, T.DEST_ZONE_CODE
FROM TT_WAYBILL_INFO T
WHERE EXISTS
(SELECT 1 FROM TEMP_WAYBILL_CYX WHERE WAYBILL_NO = T.WAYBILL_NO)
AND T.REPORT_DT = A;
COMMIT;
A := A + 1;
END LOOP;
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_RESULT_CYX';
FOR Q IN 1 .. 15 LOOP
INSERT INTO TEMP_RESULT_CYX
(WAYBILL_NO,
SRC_ZONE_CODE,
DEST_ZONE_CODE,
ROUTE_INDEX,
BATCH_TYPE,
S_ZONE_CODE,
S_BATCH_CODE,
S_OPT_TM,
S_DELIVERY_TM,
D_ZONE_CODE,
D_BATCH_CODE,
D_OPT_TM,
D_DELIVERY_TM,
D_S_OPT,
D_S_DIFF,
D_VEHICLE_NO,
VEHICLE_AREA,
D_BAR_OPT_CODE,
STAY_WHY_NAME,
EXCEPTION_STATUS,
DUTY_STATUS)
SELECT /*+ INDEX(IPK_WAYBILL_ROUTE_INFO) parallel(DT,5)*/
DT.WAYBILL_NO AS 运单号,
C.SRC_ZONE_CODE AS 始发网点,
C.DEST_ZONE_CODE AS 目的网点,
DT.ROUTE_INDEX AS 路由序号,
(CASE DT.D_BATCH_TYPE
WHEN 1 THEN
'收件班次'
WHEN 2 THEN
'收件仓库班次'
WHEN 3 THEN
'中转班次'
WHEN 4 THEN
'运输班次'
WHEN 5 THEN
'派件仓库班次'
WHEN 6 THEN
'派件班次'
ELSE
''
END) AS 班次类型,
DT.S_ZONE_CODE AS 静态网点,
DT.S_BATCH_CODE AS 静态班次,
DT.S_OPT_TM AS 静态操作时间,
DT.S_DELIVERY_TM AS 静态派送时效,
DT.D_ZONE_CODE AS 实际网点,
DT.D_BATCH_BATCH_CODE AS 实际班次,
DT.D_OPT_TM AS 动态操作时间,
DT.D_DELIVERY_TM AS 动态派送时效,
NVL(ROUND(TO_NUMBER(DT.D_OPT_TM - DT.S_OPT_TM) * 1440), 0) || 'm' AS 时差,
NVL(ROUND(TO_NUMBER(DT.S_DELIVERY_TM - DT.D_DELIVERY_TM) * 1440),
0) || 'm' AS 时效差值,
DT.D_VEHICLE_NO AS 车标号,
'',
DT.D_BAR_OPT_CODE AS 操作员,
S.STAY_WHY_NAME AS 异常原因,
T.EXCEPTION_NAME AS 异常状态,
(CASE DT.DUTY_STATUS
WHEN '0' THEN
''
WHEN '1' THEN
'仓库发件晚点'
WHEN '2' THEN
'中转发件晚点'
WHEN '3' THEN
'运输到达晚点'
WHEN '4' THEN
'仓库出仓晚点'
WHEN '5' THEN
'延误派送'
ELSE
'其他'
END) AS 定责状态
FROM TT_WAYBILL_ROUTE_INFO DT
LEFT JOIN ompweb.Tm_Bar_Stay_Why_Code S
ON DT.EXCEPTION_REASON = S.STAY_WHY_CODE
LEFT JOIN TEMP_EXCEPTION_STATUS T
ON NVL(T.EXCEPTION_STATUS, 0) =
SUBSTR(DT.EXCEPTION_STATUS,
1,
INSTR(DT.EXCEPTION_STATUS || ',', ',') - 1)
INNER JOIN TEMP_SRCZONECODE_CYX C
ON DT.WAYBILL_NO = C.WAYBILL_NO
WHERE DT.REPORT_DT = B;
COMMIT;
B := B + 1;
END LOOP;
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_CONVE_PLATENUM';
FOR Q IN 1 .. 15 LOOP
INSERT INTO TEMP_CONVE_PLATENUM
(VEHICLE_AREA, PLATE_NUM)
SELECT T.VEHICLE_AREA, T.PLATE_NUM
FROM TT_CONVEYANCE_SHOW T
WHERE T.PLAN_DATE >= C
AND T.PLAN_DATE < D;
COMMIT;
C := C + 1;
D := D + 1;
END LOOP;
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_CONVE_VEHICLEAREA';
INSERT INTO TEMP_CONVE_VEHICLEAREA
(VEHICLE_AREA, PLATE_NUM, RN)
SELECT *
FROM (SELECT T.VEHICLE_AREA,
T.PLATE_NUM,
ROW_NUMBER() OVER(PARTITION BY PLATE_NUM ORDER BY PLATE_NUM) RN
FROM TEMP_CONVE_PLATENUM T)
WHERE RN = 1;
COMMIT;
END;
--05 修改车辆管理区
MERGE INTO TEMP_RESULT_CYX T
USING TEMP_CONVE_VEHICLEAREA R
ON (T.D_VEHICLE_NO = R.PLATE_NUM)
WHEN MATCHED THEN
UPDATE SET T.VEHICLE_AREA = R.VEHICLE_AREA;
COMMIT;
--06 查询结果给用户
SELECT WAYBILL_NO AS 运单号,
SRC_ZONE_CODE AS 始发网点,
DEST_ZONE_CODE AS 目的网点,
ROUTE_INDEX AS 路由序号,
BATCH_TYPE AS 班次类型,
S_ZONE_CODE AS 静态网点,
S_BATCH_CODE AS 静态班次,
S_OPT_TM AS 静态操作时间,
S_DELIVERY_TM AS 静态派送时效,
D_ZONE_CODE AS 实际网点,
D_BATCH_CODE AS 实际班次,
D_OPT_TM AS 动态操作时间,
D_DELIVERY_TM AS 动态派送时效,
D_S_OPT AS 时差,
D_S_DIFF AS 时效差值,
D_VEHICLE_NO AS 车标号,
VEHICLE_AREA AS 车辆管理方,
D_BAR_OPT_CODE AS 操作员,
STAY_WHY_NAME AS 异常原因,
EXCEPTION_STATUS AS 异常状态,
DUTY_STATUS AS 定责状态
FROM TEMP_RESULT_CYX
ORDER BY WAYBILL_NO, ROUTE_INDEX;
发表评论
-
时效承诺明细产品流向存储过程
2016-05-04 14:30 0CREATE OR REPLACE PROCEDURE ST ... -
oracle 小知识点
2016-05-02 15:46 507oracle 默认排序空值在后面,显示在前面用nvl(co ... -
oracle 分析函数
2016-05-02 15:17 320row_number() over(partition by ... -
时效承诺明细行政区到城市
2016-04-28 13:18 0CREATE OR REPLACE PROCEDURE ST ... -
修改行政区ID的存储过程
2016-04-28 13:15 0CREATE OR REPLACE PROCEDURE S ... -
hive 资料
2016-04-11 20:07 0hive 培训资料 -
oracle 三种表连接方式
2016-04-10 18:04 939oracle 小知识 1.oracle 查看表大小 SEL ... -
sql 基本优化
2016-03-17 21:58 6571.select语句中避免使用*;2.ORACLE 采用从 ... -
最近存储过程
2015-07-28 10:43 563CREATE OR REPLACE PROCEDURE STP ... -
oracle 开窗函数使用,merge
2014-10-14 15:17 902select cast(last_operate_tm as ... -
oracle case when then 用法
2014-10-11 12:15 1205SELECT D.DEPT_CODE, ... -
oracle 创建无参存储过程
2014-09-23 15:26 1472create or replace procedure pro ... -
Oracle表分区与索引的创建
2013-10-22 11:00 1423create table TT_FLOW_TEST ( i ... -
PL SQL Develop中文乱码问题
2013-03-29 10:53 22621.准备软件 下载 oracle client客服端工具包 ... -
Oracle DB link
2012-11-05 22:29 1027drop database link jc_zd cre ... -
Oracle 下的自定义函数
2012-10-21 15:25 911create or replace function MY_L ... -
Oracle 带游标的存储过程
2012-10-21 15:11 1141CREATE OR REPLACE PROCEDURE ST ... -
oracle 递归查询一个树形结构的菜单
2011-09-02 11:53 21296关键字:oracle connect by level 树状结 ... -
oracle 查询日期
2011-09-02 11:53 1073--查询一个季度的第一天select trunc(sysda ... -
返回自定义游标的存储过程
2011-09-02 11:51 1020create or replace procedure pro ...
相关推荐
脚本会加载这个文件,执行完毕后清除临时文件,以保证环境的整洁。 综合来看,Genesis2000脚本中的info命令和其参数为自动化操作提供了极大的便利,通过这些内定的变量和参数,我们可以有效地提取所需的信息,减少...
FFA149~FFA14D和FFA100~FFA109可能在表格中未定义,FFA170~FFA17F定义为临时变量,但具体含义需要结合业务背景和脚本上下文理解。FFA100等临时变量的作用类似于C语言中的临时变量,它们可能在后续流程中作为数据源。...
在实际操作中,HR用户可能还需要具备处理PL/SQL过程、触发器、存储过程等权限,这取决于应用程序的需求。同时,安全性和审计也是重要的考虑因素,DBA可能需要监控和控制HR用户的活动,防止未授权的访问或更改。 ...
- **密钥管理**:AccessKey ID和AccessKey Secret应妥善保管,避免暴露在代码中,通常建议使用阿里云的RAM服务动态获取临时凭证。 - **手机号码保护**:在处理用户手机号码时,要遵循隐私政策,确保数据安全,不被...
脚本语言的选择取决于游戏引擎和团队的技术栈。这些脚本会与游戏引擎紧密集成,使得非编程背景的设计人员也能通过图形化界面来创建和修改游戏逻辑。 在描述中提到的“游戏小脚本”,可能指的是一个较小规模或特定...
5. **pre_start_checks.sql** 和 **post_stop_tasks.sql**:启动前的检查和停止后的清理任务,这些脚本可能包含了对硬件、系统资源、日志文件等的检查,以及关闭后的一些善后工作,比如清理临时文件、更新维护记录等...
1. **下载依赖**:脚本首先会检查并下载必要的依赖库,这些可能包括编译工具(如cmake)、库文件(如libjpeg、libpng等)、以及特定的计算机视觉相关库(如FFmpeg、CUDA等,取决于OpenCV版本和配置选项)。...
4. 支持从文件读入并作为参数的方式(即配置文件中嵌入其它文件,嵌套层数无限制,一般为临时创建的文件,一些不确定参数可以先保存到临时文件,再用此程序读取)。参考特殊说明。5. 支持VB代码嵌入,方便变量使用、...
### USB偷取资料的技术背景 USB(通用串行总线)是一种广泛应用于个人电脑和移动设备上的接口标准,用于连接各种外部设备。随着USB设备的普及,它也成为了一种被黑客利用进行恶意活动的重要工具之一。本节将围绕...
3. `head -c 500 /dev/urandom`:从设备 `/dev/urandom` 读取500个随机字节,`/dev/urandom` 是一个伪随机数生成器,提供了无限量的随机数据。 4. `tr -dc a-zA-Z` 和 `tr -dc a-z0-9A-Z`:这两个命令用于过滤字符集...
`exit`命令可以指定脚本的退出状态,超过255后会取除256后的余数。 `if-then`语句是控制流程的关键,当`command1`的退出状态为0时,执行`commands2`。如果`command1`失败,可以使用`else`分支执行`commands3`。`if-...
- 系统维护:清理临时文件、注册表清理、系统信息收集等。 - 软件安装自动化:自动执行安装程序,设定参数,甚至进行无人值守安装。 批处理虽然简单,但功能强大,是系统管理员和日常用户进行自动化工作的重要...
3. 脚本运行过程中,系统会自动执行一系列清理命令,如清理临时文件、系统日志、预读取文件等。 4. 脚本执行完毕后,可能会提示重启电脑以完成清理。根据提示操作即可。 使用脚本清理C盘时需要注意以下几点: 1. *...
例如,对于随机数生成的测试,可以编写一个APDU脚本来发送上述取随机数的命令,并检查返回的随机数是否符合预期。 5. **执行测试脚本**: - 测试脚本可以是文本文件,包含一系列APDU指令,通过模拟器或连接的智能...
限制列数的交叉表.sql │ ├─第07章 │ │ 7.1 splitpage.asp │ │ 7.2.1 TOP n 实现的通用分页存储过程.sql │ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql │ │ 7.2.3 临时表...
在计算机领域,文本编码是处理...需要注意的是,转换过程中可能会丢失无法映射的字符,这取决于`iconv`命令的选项设置。在实际使用时,确保备份原始文件以防数据丢失,同时要了解字符编码的差异,以避免不必要的问题。
在易语言中,“取随机进程名”是一个常见的功能,用于生成一个随机的进程名称,这在某些应用场景下非常有用,比如编写测试脚本、创建临时进程或进行安全相关的程序设计。 首先,我们要理解“进程名”是什么。在操作...
- 上述命令将最大连接数临时设置为200。需要注意的是,这个设置只对当前会话有效,不会影响其他已存在的连接。 3. **查看当前状态**: - 可以通过查询 `SHOW VARIABLES LIKE 'max_connections';` 来验证设置是否...
### 取NC三大报表数据方法 #### 背景与目的 在企业信息化管理中,为了更好地集成不同系统之间的数据,通常需要将某些关键报表的数据提取出来并传递给其他系统进行进一步处理或分析。本篇内容主要介绍了如何从NC...
例如,使用`head -1`命令获取其前一个字节,然后通过`md5sum`命令计算哈希值,最后取前8个字符作为随机密码的一部分。另外,Linux环境变量`$RANDOM`也可以用来生成随机整数,但它的范围是0到32767,若需要特定长度的...