Plsql 使用光标时出错:';遇到符号“;“文件结束”;当预期以下情况之一时:';
我试图使用游标&使用下面提到的sql查询,对下表中的所有列进行大规模更新 但我一直在犯错误 遇到符号“文件结束”时,应出现以下情况之一: 使用的查询: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
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