以前に作成したプロシージャを新しいプロシージャで呼び出そうとしています。何を試しても同じ行でエラーが発生します。私の元の行は次のとおりです。
CALL "PAYROLLDBTEST"."ABS_GetEmployeeHistoryDetail"(:EmpID)
これで、「関数またはプロシージャの名前が無効です: ABS_GETEMPLOYEEHISTORYDETAILS:」というエラーが発生しました。
次に、これで「PAYROLLDBTEST/ABS_GetEmployeeHistoryDetail」(EmpID) を呼び出してみました
だから何が悪いのか教えてください。
編集:手順全体を次に示します:
CREATE PROCEDURE "PAYROLLDBTEST".GetEmploymentHistoryFunction
(IN EmpID integer, IN StartDate timestamp, IN EndDate timestamp,OUT RETURNVALUE NVARCHAR)
LANGUAGE SQLSCRIPT
AS
BEGIN
SELECT *, DAYS_BETWEEN("FromDate", "ToDate") + 1 AS "DaysCount"
FROM (SELECT "Code", "Name", "U_LineID", "U_empID", "U_Status",
CASE
WHEN ("ToDate" < :StartDate) THEN NULL
WHEN ("FromDate" > :EndDate) THEN NULL
WHEN ("FromDate" < :StartDate AND ("ToDate" BETWEEN :StartDate AND :EndDate)) THEN :StartDate
WHEN ("FromDate" < :StartDate AND "ToDate" > :EndDate) THEN :StartDate
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND
("ToDate" BETWEEN :StartDate AND :EndDate)) THEN "FromDate"
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND "ToDate" > :EndDate) THEN "FromDate"
WHEN ("ToDate" IS NULL AND "FromDate" < :StartDate) THEN :StartDate
WHEN ("ToDate" IS NULL AND ("FromDate" BETWEEN :StartDate AND :EndDate)) THEN "FromDate"
END AS "FromDate",
CASE
WHEN ("ToDate" < :StartDate) THEN NULL
WHEN ("FromDate" > :EndDate) THEN NULL
WHEN ("FromDate" < :StartDate AND ("ToDate" BETWEEN :StartDate AND :EndDate)) THEN "ToDate"
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND
("ToDate" BETWEEN :StartDate AND :EndDate)) THEN "ToDate"
WHEN ("FromDate" < :StartDate AND "ToDate" > :EndDate) THEN :EndDate
WHEN (("FromDate" BETWEEN :StartDate AND :EndDate) AND "ToDate" > :EndDate) THEN :EndDate
WHEN ("ToDate" IS NULL AND "FromDate" < :StartDate) THEN :EndDate
WHEN ("ToDate" IS NULL AND ("FromDate" BETWEEN :StartDate AND :EndDate)) THEN :EndDate
END AS "ToDate", "U_Position", "U_Project", "U_Sponsorship"
FROM (
--select * from ABS_GetEmployeeHistoryDetails WHERE ("EmpID" IN (:EmpID))
--select * from "PAYROLLDBTEST"."ABS_GetEmployeeHistoryDetails" WHERE ("EmpID" IN (:EmpID))
CALL "PAYROLLDBTEST"."ABS_GetEmployeeHistoryDetails"(:EmpID,:RETURNVALUE);
) InnerQuery
) OuterQuery
WHERE ("FromDate" between :StartDate and :EndDate OR "ToDate" between :StartDate and :EndDate);
END;
ありがとう