我几乎完成了昨天开始的程序,但在最后一步,我发现只有在使用 if 子句进行比较时才会出现问题。如果您介绍足球联赛轮次和球队名称,该程序会显示比赛的所有信息。当球队是主队或客队并且日期与可用的两轮比赛之一匹配时,我将足球比赛 ID 存储在 idp 上以供以后比较(if 子句为名为 FECHA 的变量设置不同的日期,如果是一个或两个)。问题是,如果我尝试手动检查 FECHA 或西班牙语日期,它可以工作,但如果我尝试使用 if 路径,则会出现错误声明: 你能帮我解决这个问题吗?太感谢了!
create or replace PROCEDURE COMPROBARPARTIDO(JORNADA IN NUMBER, EQUIPO IN VARCHAR2) AS
FECHA DATE;
IDLOCAL NUMBER;
IDP NUMBER;
NUMAUX NUMBER;
NUMAUX2 NUMBER;
GOLAUX NUMBER;
GOLOC NUMBER;
GOLVI NUMBER;
BEGIN
NUMAUX:=0;
NUMAUX2:=0;
IF JORNADA = 1 THEN
FECHA := TO_DATE('2021-03-04','yyyy-mm-dd');
ELSIF JORNADA = 2 THEN
FECHA := TO_DATE('2021-03-13','yyyy-mm-dd');
ELSE
DBMS_OUTPUT.PUT_LINE('ERROR');
END IF;
SELECT DISTINCT P.ID INTO IDP
FROM PARTIDO P
INNER JOIN EQUIPO EL
ON P.ID_LOCAL =EL.ID
INNER JOIN EQUIPO EV
ON P.ID_VISITANTE = EV.ID
WHERE P.FECHA = FECHA AND (EV.NOMBRE =EQUIPO OR EL.NOMBRE=EQUIPO);