引发的原因和无效的rowid错误

Wamglind carmasaic

我试图将每个客户的年龄增加1并显示出来;使用光标。

这是表格结构。

Select * from customers;

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |

这是我的代码:

DECLARE
   c_id customers.id%TYPE;
   c_name customers.name%TYPE;
   c_age customers.age%TYPE;

   CURSOR c1 IS
    SELECT id, name, age
      FROM customers
       FOR UPDATE OF salary;
BEGIN
   OPEN c1;
   LOOP
       FETCH c1 INTO c_id, c_name, c_age;
       UPDATE customers
       SET age = age + 1
       WHERE CURRENT OF c1;

       EXIT WHEN c1%NOTFOUND;
       dbms_output.put_line( c_id || ' ' || c_name || ' ' || c_age );
   END LOOP;
   CLOSE c1;
END;
/

但是,我收到以下错误:

Error report:
ORA-01410: invalid ROWID
ORA-06512: at line 13
01410. 00000 -  "invalid ROWID"
*Cause:    
*Action:
1 Ramesh 32
2 Khilan 25
3 kaushik 23
4 Chaitali 25
5 Hardik 27
6 Komal 22

为什么会发生这种情况,我该如何制止呢?

亚历克斯·普尔

你把你exit放在错误的地方;之后应该是直的fetch您正在正确处理六个实际行,但是随后进行了第七次提取-在此之后%notfound将进行true-因此没有要更新的“当前”行。您需要先退出,然后再尝试对该无效行执行任何操作。

BEGIN
   OPEN c1;
   LOOP
       FETCH c1 INTO c_id, c_name, c_age;
       EXIT WHEN c1%NOTFOUND;

       UPDATE customers
       SET age = age + 1
       WHERE CURRENT OF c1;

       dbms_output.put_line( c_id || ' ' || c_name || ' ' || c_age );
   END LOOP;
   CLOSE c1;
END;

希望这只是一个练习,因为这不是进行更新的非常有效的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular引发“错误:无效的参数。” 在IE中

来自分类Dev

Google Cloud DNS错误请求原因无效

来自分类Dev

Google Cloud DNS错误请求原因无效

来自分类Dev

discord.py和youtube_dl,“读取错误”和“会话由于某种原因而无效”

来自分类Dev

柔术引发导入错误-无法弄清原因

来自分类Dev

柔术引发导入错误-无法弄清原因

来自分类Dev

无效的OData路径和无效的操作错误

来自分类Dev

无效的OData路径和无效的操作错误

来自分类Dev

Django模型选择不会因无效选择而引发错误

来自分类Dev

“打印”在Python 3中引发无效的语法错误

来自分类Dev

C中的枚举未对无效输入引发错误

来自分类Dev

输入无效网址时,Rails不会引发路由错误

来自分类Dev

window.open在IE中引发无效参数错误

来自分类Dev

引发了预期的错误:RangeError:无效的数组长度

来自分类Dev

如果可选属性无效,则JSON Schema引发验证错误

来自分类Dev

Moq成员变量不会因无效设置而引发错误

来自分类Dev

属性路由无效,URL中引发404错误

来自分类Dev

SDL2 CreateRenderer引发无效的窗口错误

来自分类Dev

Java-日期无效时引发错误

来自分类Dev

SocketRocket在连接无效主机时未引发错误

来自分类Dev

节点dateformat在Bitnami Mean Stack上引发无效日期错误

来自分类Dev

Datasnap 客户端引发“无效序号”错误

来自分类Dev

没有明显原因的“语法错误:语法无效”

来自分类Dev

openshift错误无效ImageStreamTag背后的原因是什么?

来自分类Dev

安卓3.3.0更新,错误:原因:无效类型代码:68

来自分类Dev

Android Studio 4.0错误;原因:类型代码无效:3A

来自分类Dev

使用ScheduledToastNotification时出现“指定的路径无效”错误的原因

来自分类Dev

HomeKit引发错误77和78

来自分类Dev

Nativescript医生引发警告和错误

Related 相关文章

  1. 1

    Angular引发“错误:无效的参数。” 在IE中

  2. 2

    Google Cloud DNS错误请求原因无效

  3. 3

    Google Cloud DNS错误请求原因无效

  4. 4

    discord.py和youtube_dl,“读取错误”和“会话由于某种原因而无效”

  5. 5

    柔术引发导入错误-无法弄清原因

  6. 6

    柔术引发导入错误-无法弄清原因

  7. 7

    无效的OData路径和无效的操作错误

  8. 8

    无效的OData路径和无效的操作错误

  9. 9

    Django模型选择不会因无效选择而引发错误

  10. 10

    “打印”在Python 3中引发无效的语法错误

  11. 11

    C中的枚举未对无效输入引发错误

  12. 12

    输入无效网址时,Rails不会引发路由错误

  13. 13

    window.open在IE中引发无效参数错误

  14. 14

    引发了预期的错误:RangeError:无效的数组长度

  15. 15

    如果可选属性无效,则JSON Schema引发验证错误

  16. 16

    Moq成员变量不会因无效设置而引发错误

  17. 17

    属性路由无效,URL中引发404错误

  18. 18

    SDL2 CreateRenderer引发无效的窗口错误

  19. 19

    Java-日期无效时引发错误

  20. 20

    SocketRocket在连接无效主机时未引发错误

  21. 21

    节点dateformat在Bitnami Mean Stack上引发无效日期错误

  22. 22

    Datasnap 客户端引发“无效序号”错误

  23. 23

    没有明显原因的“语法错误:语法无效”

  24. 24

    openshift错误无效ImageStreamTag背后的原因是什么?

  25. 25

    安卓3.3.0更新,错误:原因:无效类型代码:68

  26. 26

    Android Studio 4.0错误;原因:类型代码无效:3A

  27. 27

    使用ScheduledToastNotification时出现“指定的路径无效”错误的原因

  28. 28

    HomeKit引发错误77和78

  29. 29

    Nativescript医生引发警告和错误

热门标签

归档