56,679
社区成员
发帖
与我相关
我的任务
分享
CREATE OR REPLACE PACKAGE BODY pkg_SVN AS
PROCEDURE SVN_PROJECT_USER(
Prm_AppCode OUT VARCHAR2,
Prm_ErrorMsg OUT VARCHAR2)
AS
V_LASTDAY DATE;
CURSOR C_PROJECTUSER IS
SELECT A.PROJECTID,
C.YAE092,
MAX(B.AAE036) as aae036
FROM PROJECTINFO A, SVNLOG B,AD53A4 C
WHERE B.FILEPATH LIKE A.FULLPATH || '%'
AND B.AAE036 > V_LASTDAY
AND B.AAE036 < SYSDATE
AND B.YAE041 = C.YAE041
AND C.YAE092 <> '9999999'
GROUP BY A.PROJECTID,C.YAE092
ORDER BY A.PROJECTID;
BEGIN
--获取上次执行时间--
SELECT MAX(LASTDATE)
INTO V_LASTDAY
FROM PROJECTUSER;
for rec_tmp in C_PROJECTUSER loop
UPDATE PROJECTUSER
SET LASTDATE = rec_tmp.aae036
WHERE PROJECTID = rec_tmp.PROJECTID
AND YAE092 = rec_tmp.YAE092;
END LOOP;
insert into syslog(
yab903,
yab904,
aae011,
aae036)
values('9',
'自动同步',
'9999999',
sysdate);
Prm_AppCode := 'NOERROR';
Prm_ErrorMsg := 'ok';
EXCEPTION
WHEN OTHERS THEN
Prm_AppCode := '9999';
Prm_ErrorMsg := SQLERRM;
DBMS_OUTPUT.PUT_LINE('发生错误!');
END;
end;
DELIMITER $$
DROP PROCEDURE IF EXISTS `svn`.`SVN_PROJECT_USER` $$
CREATE PROCEDURE `svn`.`SVN_PROJECT_USER` (OUT Prm_AppCode VARCHAR(500),OUT Prm_ErrorMsg VARCHAR(500))
begin
declare finished integer default 0;
declare V_LASTDAY DATETIME;
declare V_PROJECTID VARCHAR(100);
declare V_YAE092 VARCHAR(100);
declare V_AAE036 DATETIME;
declare C_PROJECTUSER CURSOR for
SELECT A.PROJECTID,
C.YAE092,
MAX(B.AAE036) as aae036
FROM PROJECTINFO A, SVNLOG B,AD53A4 C
WHERE B.FILEPATH LIKE A.FULLPATH || '%'
AND B.AAE036 > V_LASTDAY
AND B.AAE036 < SYSDATE()
AND B.YAE041 = C.YAE041
AND C.YAE092 <> '9999999'
GROUP BY A.PROJECTID,C.YAE092
ORDER BY A.PROJECTID;
declare continue handler for not found set finished = 1;
SELECT MAX(LASTDATE)
INTO V_LASTDAY
FROM PROJECTUSER;
open C_PROJECTUSER;
repeat
fetch C_PROJECTUSER into V_PROJECTID,V_YAE092,V_AAE036;
UPDATE PROJECTUSER
SET LASTDATE = V_AAE036
WHERE PROJECTID = V_PROJECTID
AND YAE092 = V_YAE092;
END repeat;
close C_PROJECTUSER;
insert into syslog(
yab903,
yab904,
aae011,
aae036)
values('9',
'自动同步',
'9999999',
sysdate);
Prm_AppCode := 'NOERROR';
Prm_ErrorMsg := 'ok';
EXCEPTION
WHEN OTHERS THEN
Prm_AppCode := '9999';
Prm_ErrorMsg := SQLERRM;
DBMS_OUTPUT.PUT_LINE('发生错误!');
END;
END $$
DELIMITER ;
create table PROJECTINFO
(
PROJECTID VARCHAR2(20) not null,
PROJECTNAME VARCHAR2(200),
YAB109 VARCHAR2(20),
FULLPATH VARCHAR2(1000) not null,
PROJECTSTAT VARCHAR2(6),
AAE011 VARCHAR2(20) not null,
AAE036 DATE not null,
MANAGER VARCHAR2(20)
)
create table SVNLOG
(
REVISION VARCHAR2(20) not null,
YAE041 VARCHAR2(100) not null,
AAE036 DATE not null,
FILEPATH VARCHAR2(500) not null,
OPRA CHAR(10) not null
)
create table AD53A4
(
YAE092 VARCHAR2(20) not null,
YAB109 VARCHAR2(20) not null,
AAC003 VARCHAR2(40) not null,
YAE041 VARCHAR2(40) not null,
YAE042 VARCHAR2(40) not null,
USERSTAT VARCHAR2(6) not null,
AAE011 VARCHAR2(20) not null,
AAE036 DATE not null
)
create table PROJECTUSER
(
YAE092 VARCHAR2(20) not null,
PROJECTID VARCHAR2(20) not null,
PROJECTUSERSTAT VARCHAR2(2),
AAE011 VARCHAR2(20) not null,
AAE036 DATE not null,
LASTDATE DATE
)
create table SYSLOG
(
YAB903 VARCHAR2(6) not null,
YAB904 VARCHAR2(4000) not null,
AAE011 VARCHAR2(20) not null,
AAE036 DATE not null
)