Plsql 使用光标时出错:';遇到符号“;“文件结束”;当预期以下情况之一时:';

Plsql 使用光标时出错:';遇到符号“;“文件结束”;当预期以下情况之一时:';,plsql,cursor,Plsql,Cursor,我试图使用游标&使用下面提到的sql查询,对下表中的所有列进行大规模更新 但我一直在犯错误 遇到符号“文件结束”时,应出现以下情况之一: 使用的查询: DECLARE CURSOR Cursor IS SELECT * FROM Persons; myVar Cursor%ROWTYPE; BEGIN OPEN Cursor; LOOP FETCH Cursor INTO myVar; EXIT WHEN Cursor%NOTFOUND; UPDATE Persons SET Last

我试图使用游标&使用下面提到的sql查询,对下表中的所有列进行大规模更新

但我一直在犯错误

遇到符号“文件结束”时,应出现以下情况之一:

使用的查询:

DECLARE 
CURSOR Cursor IS SELECT * FROM Persons;
myVar  Cursor%ROWTYPE;

BEGIN
OPEN Cursor;

LOOP

FETCH Cursor INTO myVar;
EXIT WHEN Cursor%NOTFOUND;
UPDATE Persons SET LastName='Name:'||persID WHERE LastName=myVar.LASTNAME and persID=mVar.PersonID ;

END LOOP;

CLOSE Cursor;
END;
我的预期结果是:

PERSONID LASTNAME    FIRST     ADDRESS       CITY
11       Name:11     Skagen    21,Stavanger  Norway 
22       Name:22     Skagen    22,Stavanger  Minneapolis 
33       Name:33     Skagen    33,Stavanger  Norway 

为什么这不能作为一个单一的更新来完成?这不能使用单一的UPDATE语句来完成,因为我需要跟踪人员ID的变化。。。并使用与Person ID连接的“name”字符串不断更新last name列,因此我正在使用游标。。有更简单的方法吗?
updatepersonssetlastname='Name:'| | personID
?实际上。。你是对的。。它起作用了。。令人惊叹的。。谢谢
PERSONID LASTNAME    FIRST     ADDRESS       CITY
11       Name:11     Skagen    21,Stavanger  Norway 
22       Name:22     Skagen    22,Stavanger  Minneapolis 
33       Name:33     Skagen    33,Stavanger  Norway