PL SQL过程警告已编译错误PLS-00103

时间:2014-06-05 18:56:22

标签: stored-procedures plsql syntax-error plsqldeveloper

我从PL / SQL开始,这是我的第一个程序,我觉得很难编译;我尝试了很多不同的版本,我进行了最后的尝试。我不明白为什么SQLDEVELOPER会说:“程序编译(有错误)”。

编译器说我:“Errore(10,1):PLS-00103:Trovato il simbolo(查找)”DECLARE“代替:开始函数编译指示程序子类型当前游标删除存在之前”

如果还有其他错误(也是合乎逻辑的)请告诉我。我想改进。

谢谢大家的答案

我的程序:

create or replace PROCEDURE calcola_giorn (giornata IN INTEGER) is
  -- si tenga presente che in realtà giornata=idPartita
somma NUMBER;
idcal NUMBER;
nometorn VARCHAR2;
idformaz NUMBER;
nomesquadr VARCHAR2;

DECLARE; 

SELECT idcalendario INTO idcal FROM partita WHERE id= giornata;

SELECT nometorneo INTO nometorn FROM calendario WHERE id= idcal;

CURSOR formazioni_di_giornata IS
    SELECT id, nomesquadra FROM formazione where idpartita= giornata;

CURSOR giocatori_di_giornata IS
    SELECT votogiocatore FROM schiera WHERE idformazione= idformaz;


Begin
OPEN formazioni_di_giornata; 
    FOR tupla_formazione IN formazioni_di_giornata LOOP
      somma:=0;
      FETCH formazioni_di_giornata INTO idformaz, nomesquadr;
        OPEN giocatori_di_giornata;
            FOR tupla_giocatore IN giocatori_di_giornata LOOP
              somma:= somma + tupla_giocatore.votogiocatore;
            END LOOP;
        CLOSE giocatori_di_giornata;
      UPDATE partecipa SET punti= somma WHERE ( (nomesquadra= nomesquadr) AND (nometorneo= nometorn));
      END LOOP;
CLOSE formazioni_di_giornata;

EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END calcola_giorn;

1 个答案:

答案 0 :(得分:1)

  1. 应定义Varchar限制,如varchar2(100)
  2. 替换DECLARE;与BEGIN
  3. 所有游标都应该在BEGIN
  4. 之前
  5. 放置END;的程序
  6. 您可以在进行这些更改后尝试编译。