oracle CURSOR
时间: 2023-08-19 20:14:26 浏览: 131
Oracle CURSOR是SQL的一个内存工作区,用于临时存储从数据库中提取的数据块。它可以通过隐式Cursor的属性来了解操作的状态和结果,从而达到流程的控制。隐式Cursor是系统自动打开和关闭的,可以用于Select、Update、Insert、Delete等操作。\[3\]
在Oracle中,CURSOR常见的异常包括:
1. CURSOR_ALREADY_OPEN:试图打开已经打开的游标。
2. INVALID_CURSOR:试图使用没有打开的游标。
3. DUP_VAL_ON_INDEX:保存重复值到唯一索引约束的列中。
4. ZERO_DIVIDE:发生除数为零的除法错误。
5. INVALID_NUMBER:试图对无效字符进行数值转换。
6. ROWTYPE_MISMATCH:主变量和游标的类型不兼容。
7. VALUE_ERROR:转换、截断或算术运算发生错误。
8. TOO_MANY_ROWS:SELECT...INTO...语句返回多于一行的数据。
9. NO_DATA_FOUND:SELECT...INTO...语句没有数据返回。
10. TIMEOUT_ON_RESOURCE:等待资源时发生超时错误。
11. TRANSACTION_BACKED_OUT:由于死锁,提交失败。
12. STORAGE_ERROR:发生内存错误。
13. PROGRAM_ERROR:发生PL/SQL内部错误。
14. NOT_LOGGED_ON:试图操作未连接的数据库。
15. LOGIN_DENIED:在连接时提供了无效用户名或口令。\[1\]
在使用CURSOR时,可以使用SQL%NOTFOUND属性来判断是否成功执行了SQL语句。例如,可以使用以下语句来退出循环:
EXIT WHEN SQL%NOTFOUND OR SQL%NOTFOUND IS NULL;\[2\]
#### 引用[.reference_title]
- *1* *3* [Oracle中游标(Cursor)介绍和使用](https://blog.csdn.net/qq_34357018/article/details/120365455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Oracle 游标详解(cursor)](https://blog.csdn.net/qq_34745941/article/details/81294166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文