SQL> Declare
2 vname dept.dname%Type;
3 Begin
4 For csr In(Select * From dept For Update) Loop
5 Update dept Set dname=Upper(dname) Where deptno=csr.deptno Returning dname Into vname;
6 dbms_output.put_line(vname);
7 Commit;
8 End Loop;
9 End;
10 /
ACCOUNTING
Declare
vname dept.dname%Type;
Begin
For csr In(Select * From dept For Update) Loop
Update dept Set dname=Upper(dname) Where deptno=csr.deptno Returning dname Into vname;
dbms_output.put_line(vname);
Commit;
End Loop;
End;
ORA-01002: 提取违反顺序
ORA-06512: 在 line 4
SQL>
SQL> Declare
2 vname dept.dname%Type;
3 Begin
4 For csr In(Select * From dept For Update) Loop
5 Update dept Set dname=Upper(dname) Where deptno=csr.deptno Returning dname Into vname;
6 dbms_output.put_line(vname);
7 End Loop;
8 Commit;
9 End;
10 /
ACCOUNTING
RESEARCH
SALES
OPERATIONS
PL/SQL procedure successfully completed
2 vname dept.dname%Type;
3 Begin
4 For csr In(Select * From dept For Update) Loop
5 Update dept Set dname=Upper(dname) Where deptno=csr.deptno Returning dname Into vname;
6 dbms_output.put_line(vname);
7 Commit;
8 End Loop;
9 End;
10 /
ACCOUNTING
Declare
vname dept.dname%Type;
Begin
For csr In(Select * From dept For Update) Loop
Update dept Set dname=Upper(dname) Where deptno=csr.deptno Returning dname Into vname;
dbms_output.put_line(vname);
Commit;
End Loop;
End;
ORA-01002: 提取违反顺序
ORA-06512: 在 line 4
SQL>
SQL> Declare
2 vname dept.dname%Type;
3 Begin
4 For csr In(Select * From dept For Update) Loop
5 Update dept Set dname=Upper(dname) Where deptno=csr.deptno Returning dname Into vname;
6 dbms_output.put_line(vname);
7 End Loop;
8 Commit;
9 End;
10 /
ACCOUNTING
RESEARCH
SALES
OPERATIONS
PL/SQL procedure successfully completed
本文通过一段PL/SQL代码示例展示了如何遍历DEPT表并更新每个部门的名称为大写形式,同时输出更新后的部门名称。此过程涉及使用FOR循环结合CURSOR进行数据迭代,并利用UPPER函数转换字符串。
4万+

被折叠的 条评论
为什么被折叠?



