DB2 创建存储过程保存:XX 后面找到异常标记 "END-OF-STATEMENT"。
存储过程最后一行加结束符@:
然后执行:db2 -td@ -vf /home/WGJ/proc_data_calculate.sql
[slsadmin@localhost /]$ db2 -td@ -vf /home/WGJ/proc_data_calculate.sql
CREATE OR REPLACE PROCEDURE "SLSADMIN"."PROC_DATA_CALCULATE"
(
IN i_report_id VARCHAR(20),
IN i_report_date VARCHAR(20),
IN i_organ_id VARCHAR(20),
OUT o_msg varchar(32672),
OUT o_ret varchar(32672)
)
LANGUAGE SQL
SPECIFIC SQL140801094913965
RESULT SETS 2
BEGIN
DECLARE v_propotype_table CHAR(30);
DECLARE v_physical_table CHAR(50);
DECLARE v_temp_table CHAR(30);
DECLARE v_history_table CHAR(30);
DECLARE v_columns VARCHAR(4000);
declare sSql varchar(1000) ;
declare eSql varchar(32672); SELECT phy_table, phy_table||'_'||substr(i_report_date, 5, 2)
INTO v_propotype_table,v_temp_table
FROM code_rep_report t
WHERE t.pkid = i_report_id;
--真心不会啊
IF v_propotype_table = 'rep_dataf' THEN IF i_report_id = '' THEN
set v_physical_table = 'VIEW_DATAF_' || substr(i_report_date, 5, 2);
set v_history_table = 'wgj_data_submit_info_hist_f';
set v_columns = 'ORGAN_ID,REPORT_ID,ITEM_ID,REPORT_DATE,ITEMVALUE1,ITEMVALUE2,ITEMVALUE21';
ELSE
SELECT phy_table||'_'||substr(i_report_date, 5, 2)||'_0'
INTO v_physical_table
FROM code_rep_report t
WHERE t.pkid = i_report_id;
set v_history_table = 'wgj_data_submit_info_hist_f';
set v_columns = 'ITEMVALUE63,ITEMVALUE64,ITEMVALUE65,ITEMVALUE66,ITEMVALUE67,ITEMVALUE68,ITEMVALUE69,ITEMVALUE7,ITEMVALUE70,ITEMVALUE71,ITEMVALUE72,ITEMVALUE73,ITEMVALUE74,ITEMVALUE75,ITEMVALUE76,ITEMVALUE77,ITEMVALUE78,ITEMVALUE79,ITEMVALUE8,ITEMVALUE80,ITEMVALUE9,ORGAN_ID,REPORT_DATE,REPORT_ID,ITEMVALUE81,ITEMVALUE82,ITEMVALUE83,ITEMVALUE84,ITEMVALUE85,ITEMVALUE86,ITEMVALUE87,ITEMVALUE88,ITEMVALUE89,ITEMVALUE90,ITEMVALUE91,ITEMVALUE92,ITEMVALUE93,ITEMVALUE94,ITEMVALUE95,ITEMVALUE96,ITEMVALUE97,ITEMVALUE98,ITEMVALUE99,ITEMVALUE100,ITEMVALUE101,ITEMVALUE102,ITEMVALUE103,ITEMVALUE104,ITEMVALUE105,ITEMVALUE106,ITEMVALUE107,ITEMVALUE108,ITEMVALUE109,ITEMVALUE110,ITEMVALUE111,ITEMVALUE112,ITEMVALUE113,ITEMVALUE114,ITEMVALUE115,ITEMVALUE116,ITEMVALUE117,ITEMVALUE118,ITEMVALUE119,ITEMVALUE120,ITEMVALUE121,ITEMVALUE122,ITEMVALUE123,ITEMVALUE124,ITEMVALUE125,ITEMVALUE126,ITEMVALUE127,ITEMVALUE128,ITEMVALUE129,ITEMVALUE130,ITEMVALUE131,ITEMVALUE132,ITEMVALUE133,ITEMVALUE134,ITEMVALUE135,ITEMVALUE136,ITEMVALUE137,ITEMVALUE138,ITEMVALUE139,ITEMVALUE140,ITEM_ID,ITEMVALUE1,ITEMVALUE10,ITEMVALUE11,ITEMVALUE12,ITEMVALUE13,ITEMVALUE14,ITEMVALUE15,ITEMVALUE16,ITEMVALUE17,ITEMVALUE18,ITEMVALUE19,ITEMVALUE2,ITEMVALUE20,ITEMVALUE21,ITEMVALUE22,ITEMVALUE23,ITEMVALUE24,ITEMVALUE25,ITEMVALUE26,ITEMVALUE27,ITEMVALUE28,ITEMVALUE29,ITEMVALUE3,ITEMVALUE30,ITEMVALUE31,ITEMVALUE32,ITEMVALUE33,ITEMVALUE34,ITEMVALUE35,ITEMVALUE36,ITEMVALUE37,ITEMVALUE38,ITEMVALUE39,ITEMVALUE4,ITEMVALUE40,ITEMVALUE41,ITEMVALUE42,ITEMVALUE43,ITEMVALUE44,ITEMVALUE45,ITEMVALUE46,ITEMVALUE47,ITEMVALUE48,ITEMVALUE49,ITEMVALUE5,ITEMVALUE50,ITEMVALUE51,ITEMVALUE52,ITEMVALUE53,ITEMVALUE54,ITEMVALUE55,ITEMVALUE56,ITEMVALUE57,ITEMVALUE58,ITEMVALUE59,ITEMVALUE6,ITEMVALUE60,ITEMVALUE61,ITEMVALUE62'; END IF; ELSE
SELECT phy_table||'_'||substr(i_report_date, 5, 2)
INTO v_physical_table
FROM code_rep_report t
WHERE t.pkid = i_report_id;
set v_history_table = 'wgj_data_submit_info_hist_d';
set v_columns = 'ITEMVALUE38,ITEMVALUE39,ITEMVALUE40,ITEMVALUE41,ITEMVALUE42,ITEMVALUE43,ITEMVALUE44,ITEMVALUE45,ITEMVALUE46,ITEMVALUE47,ITEMVALUE48,ITEMVALUE49,ITEMVALUE50,ORGAN_ID,REPORT_DATE,REPORT_ID,ITEM_ID,ITEMVALUE1,ITEMVALUE2,ITEMVALUE3,ITEMVALUE4,ITEMVALUE5,ITEMVALUE6,ITEMVALUE7,ITEMVALUE8,ITEMVALUE9,ITEMVALUE10,ITEMVALUE11,ITEMVALUE12,ITEMVALUE13,ITEMVALUE14,ITEMVALUE15,ITEMVALUE16,ITEMVALUE17,ITEMVALUE18,ITEMVALUE19,ITEMVALUE20,ITEMVALUE21,ITEMVALUE22,ITEMVALUE23,ITEMVALUE24,ITEMVALUE25,ITEMVALUE26,ITEMVALUE27,ITEMVALUE28,ITEMVALUE29,ITEMVALUE30,ITEMVALUE31,ITEMVALUE32,ITEMVALUE33,ITEMVALUE34,ITEMVALUE35,ITEMVALUE36,ITEMVALUE37';
END IF; DELETE FROM wgj_data_submit_info t WHERE t.report_id =i_report_id and t.organ_id=i_organ_id and t.report_date=i_report_date; set eSql = 'INSERT INTO wgj_data_submit_info
SELECT wgj_data_submit_info_seq.nextval pkid,
report_id report_id,
decode(flag,'''',''A'','''',''D'','''',''C'') operation_type,
'''' remark,
organ_id organ_id,
report_date report_date,
item_id item_id
FROM (SELECT report_id, organ_id, report_date, item_id, SUM(d) flag
FROM (SELECT report_id, organ_id, report_date, item_id, 1 d
FROM (SELECT ' || v_columns || '
FROM '||v_physical_table||' t
WHERE t.report_id = ' ||
i_report_id || '
AND t.report_date = ''' ||
i_report_date || '''
AND t.organ_id = ''' ||
i_organ_id || '''
except
SELECT ' || v_columns || '
FROM ' ||
v_history_table || ' f
WHERE f.report_id = ' ||
i_report_id || '
AND f.report_date = ''' ||
i_report_date || '''
AND f.organ_id = ''' ||
i_organ_id || '''
AND f.send_bat = ''''
AND f.operation_type !=''D'')
UNION ALL
SELECT report_id, organ_id, report_date, item_id, 2 d
FROM (SELECT ' || v_columns || '
FROM ' ||
v_history_table || ' f
WHERE f.report_id = ' ||
i_report_id || '
AND f.report_date = ''' ||
i_report_date || '''
AND f.organ_id = ''' ||
i_organ_id || '''
AND f.send_bat = ''''
AND f.operation_type !=''D''
except
SELECT ' || v_columns || '
FROM '||v_physical_table||' t
WHERE t.report_id = ' ||
i_report_id || '
AND t.report_date = ''' ||
i_report_date || '''
AND t.organ_id = ''' ||
i_organ_id || '''))
group by report_id, organ_id, report_date, item_id
)';
prepare s3 from eSql;
execute s3;
commit;
set o_msg =eSql;
set o_ret = '';
END
DB20000I The SQL command completed successfully.
DB2 创建存储过程保存:XX 后面找到异常标记 "END-OF-STATEMENT"。的更多相关文章
- 利用navicat创建存储过程、触发器和使用游标的简单实例
利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报 分类: 数 ...
- navicat创建存储过程、触发器和使用游标
创建存储过程和触发器 1.建表 首先先建两张表(users表和number表),具体设计如下图: 2.存储过程 写一个存储过程,往users表中插入数据,创建过程如下: 代码如下: BEGIN #Ro ...
- 【转】图解MySql命令行创建存储过程
一 操作实例 首先登录mysql: 使用source命令,从命令行执行sql脚本,创建表: 创建第一个存储过程: 事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";&q ...
- 2018-8-10-win10-uwp-如何创建修改保存位图
title author date CreateTime categories win10 uwp 如何创建修改保存位图 lindexi 2018-08-10 19:16:50 +0800 2018- ...
- SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过 存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...
- DB2创建数据库常用参数详解
转自http://czmmiao.iteye.com/blog/1335801 DB2创建数据库常用参数详解 本文只介绍DB2 create database语法中的常用参数http://publib ...
- navicat创建存储过程的小问题
再简单的东西长时间不用了就会出错,特此即时的记录下来,以便以后参考! 转自:http://blog.csdn.net/winy_lm/article/details/49690633 以下为navic ...
- SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程 ...
- skynet 创建存储过程脚本
最近主程更改了数据库的操作方案,由之前的拼写sql脚本转为在mysql端创建好存储过程后,直接调用存储过程. 首先对一个表测试上述过程: 数据库端存储过程:(测试表) CREATE TABLE `ra ...
随机推荐
- kafka零拷贝
Kafka之所以那么快的另外一个原因就是零拷贝(zero-copy)技术.本文我们就来了解Kafka中使用的零拷贝技术为什么那么快. 传统的文件拷贝 传统的文件拷贝通常需要从用户态去转到核心态,经过r ...
- Ethical Hacking - Web Penetration Testing(10)
SQL INJECTION SQLMAP Tool designed to exploit SQL injections. Works with many DB types, MySQL, MSSQL ...
- 工作用不到,面试经常问,这么头疼的Spring,怎么能快速过关
目录 这次文章很简单,但是也不简单,spring,spring的IOC和AOP,不知道你掌握的怎么样,最近身边的朋友有木有去面试的?他们被问到的spring面试题你能回答吗? 一看这张图,可能有朋友会 ...
- 洛谷P1063.能量项链
题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...
- Markdown 教程之编辑器
1. Typora 编辑器 Typora 是一款支持实时预览的 Markdown 文本编辑器.它有 OS X.Windows.Linux 三个平台的版本,并且由于仍在测试中,是完全免费的. 2. 安装 ...
- JAVA各种OOM代码样例及解决方法
周末了,觉得我还有很多作业没有写,针对目前大家对OOM的类型不太熟悉,那么我们来总结一下各种OOM出现的情况以及解决方法. 我们把各种OOM的情况列出来,然后逐一进行代码编写复现和提供解决方法. 1. ...
- 修改ElementUI样式的几种方式
ElementUI是一款非常强大的前端UI组件库,它默认定义了很多美观的样式,但是我们在实际开发过程中不可避免地遇到需要修改ElementUI默认样式.下面总结了几种修改默认样式的方法. 1. 新建全 ...
- .Net Core缓存组件(MemoryCache)【缓存篇(二)】
一.前言 .Net Core缓存源码 1.上篇.NET Core ResponseCache[缓存篇(一)]中我们提到了使用客户端缓存.和服务端缓存.本文我们介绍MemoryCache缓存组件,说到服 ...
- 官宣!AWS Athena正式可查询Apache Hudi数据集
1. 引入 Apache Hudi是一个开源的增量数据处理框架,提供了行级insert.update.upsert.delete的细粒度处理能力(Upsert表示如果数据集中存在记录就更新:否则插入) ...
- 《Python Web开发实战》|百度网盘免费下载|Python Web开发
<Python Web开发实战>|百度网盘免费下载|Python Web开发 提取码:rnz4 内容简介 这本书涵盖了Web开发的方方面面,可以分为如下部分: 1. 使用最新的Flask ...