다른 사람이 저장 프로시저의 결과를 사용하는 방법 - MariaDB
python 스크립트로 sql query를 실행해야 합니다.두 개의 MariaDB 저장 프로시저를 만들었습니다.첫 번째 전복 시작 및 월차 양도.절차 포기 시작은 DATE 변수를 반환해야 합니다.두 번째 절차 MonthlyTransfer는 AbonamentStart 결과보다 날짜가 최신인 레코드에 대해서만 TotalDay 열의 SUM을 반환해야 합니다.
Abonment Start 절차:
DELIMITER $$
CREATE DEFINER=`admin2`@`localhost` PROCEDURE `AbonamentStart`()
BEGIN
SELECT DAYOFMONTH(CURRENT_DATE) INTO @currentday;
SELECT MONTH(CURRENT_DATE) INTO @currentmonth;
SELECT YEAR(CURRENT_DATE) INTO @currentyear;
SELECT IF (@currentday < 22,1,0) INTO @plusminus;
SELECT ADDDATE(CURRENT_DATE, INTERVAL -(@plusminus) MONTH) INTO @plusminustemp;
SELECT DAYOFMONTH(@plusminustemp) INTO @plusminusday;
SELECT ADDDATE(@plusminustemp, INTERVAL (22 - @plusminusday) DAY) INTO @abonamentstart;
SELECT @abonamentstart;
END$$
DELIMITER ;
MonthlyTransfer 프로시저 - Python 스크립트별 SearchDate DATE 변수를 제공할 때 작동합니다.
DELIMITER $$
CREATE DEFINER=`admin2`@`localhost` PROCEDURE `MonthlyTransfer`(IN `SearchDate` DATE)
BEGIN
SELECT SUM(TotalDay)
FROM TRANSFER
WHERE DayDate > SearchDate;
END$$
DELIMITER ;
아래와 같이 Monthly Transfer 절차를 수정해 봤는데, 통화 절차 MariaDB에서 메시지가 반환되었습니다.
#1318 - 프로시저 라우터에 대한 인수 수가 잘못되었습니다.월별 전송, 예상되는 1, 0
어떤 단서라도 주신다면 미리 감사드립니다.
샘플을 찾았지만 완전히 이해되지는 않았습니다.'다른 저장 프로시저에서 프로시저 호출' [https://www.softwaretestinghelp.com/mysql-stored-procedure/ #MySQL_STORED_PROCEDURS_vs_FUNCTIONs][1]
DELIMITER $$
CREATE DEFINER=`admin2`@`localhost` PROCEDURE `MonthlyTransfer`(IN `@abonamentstart` DATE, OUT TotalTranfer INT)
BEGIN
CALL AbonamentStart();
SELECT SUM(TotalDay)
FROM TRANSFER
WHERE DayDate > @abonamentstart;
END$$
DELIMITER ;
테이블 구조:
CREATE TABLE `TRANSFER` (
`Id` int(11) NOT NULL,
`Download` bigint(15) NOT NULL,
`Upload` bigint(15) NOT NULL,
`DownloadDay` bigint(15) DEFAULT NULL,
`DownloadNight` bigint(15) DEFAULT NULL,
`UploadDay` bigint(15) DEFAULT NULL,
`UploadNight` bigint(15) DEFAULT NULL,
`TotalDay` bigint(15) DEFAULT NULL,
`TotalNight` bigint(15) DEFAULT NULL,
`DayDate` date DEFAULT NULL,
`DayHour` time DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
서버 버전: 10.5.15-MariaDB-0+deb11u1 Raspbian 11
언급URL : https://stackoverflow.com/questions/72705254/how-use-results-of-stored-procedure-by-another-one-mariadb
'programing' 카테고리의 다른 글
Jquery에서 키와 값을 모두 배열로 밀어넣는 방법 (0) | 2023.08.10 |
---|---|
"NS_ERROR_DOM_BAD_URI: 제한된 URI에 대한 액세스가 거부되었습니다." (0) | 2023.08.10 |
Spring boot "Hikari Pool Shutdown" 초기 오류 (0) | 2023.08.10 |
ORA-02014 해결 방법: DISTINCT, GROUP BY로 보기에서 FOR UPDATE를 선택할 수 없습니다. (0) | 2023.08.10 |
div의 CSS 사용자 정의 스크롤 막대 (0) | 2023.08.10 |