`

解决 ORA-01403: no data found 数据未找到

 
阅读更多

解决方法一:加一个exception异常处理

当SQL语句:select P into v_rate from classpoint    where rtrim(classcode) = :new.code; 执行时

如果没有查询到结果就会报错:数据未找到

修改为:

begin
       select P into v_rate from classpoint    where rtrim(classcode) = :new.code;
exception
     when no_data_found then
        v_rate := 1;
end;

就可以了

 

解决方法二:更改select语句,如:

  select count(*) field into var from table where ....

增加一个count(*)即使没有找到数据,也会返回0,而不是null。

分享到:
评论

相关推荐

    OGG之ORA-01403案例

    OGG 之 ORA-01403 案例中,出现了复制进程 abended 状态,报告显示错误信息为 OCI Error ORA-01403: no data found。该错误的原因可能是由于表字段不一致、索引不一致或数据不一致等原因引起的。 二、解决方法 ...

    oracle报错大全(珍藏版)

    #### ORA-00055: Data Manipulation Language (DML) Operations 执行DML操作时发生错误。这可能是因为数据完整性问题、权限不足或其他数据库级别的问题。 #### ORA-00056: "." Schema Not Specified 在DDL语句中未...

    oracle常见错误号

    3. ORA-01403:no data found - 在执行`SELECT INTO`或`EXISTS`查询时,如果没有找到匹配的行,会出现这个错误。检查查询条件是否正确,或者处理`NO_DATA_FOUND`异常。 4. ORA-00928:missing SELECT keyword - ...

    Oracle常用异常代码

    NO_DATA_FOUND (ORA-01403) **异常描述:** 当使用SELECT INTO语句查询数据但没有找到任何结果时触发此异常。 **解决方法:** - 检查查询条件是否正确。 - 可以使用EXCEPTION WHEN NO_DATA_FOUND...THEN...结构来...

    ORA-06512 数字或值错误,字符缓冲区太小

    WHEN NO_DATA_FOUND THEN v_info := NULL; END; ``` 在 SQL Developer 中调试此存储过程时,如果 `v_info` 变量的缓冲区大小设置得过小(默认可能只有200字节),则会导致 ORA-06502 错误,因为尝试从数据库中...

    SQLException

    16. **ORA-01403: NO_DATA_FOUND** - **含义**:SELECT INTO语句返回零行结果,或者程序引用了一个已删除的嵌套表中的元素或未初始化的索引表中的元素。 - **解决方法**:确保查询条件正确,能够返回数据。 17. ...

    oracle异常(最全异常收集)

    #### ORA-1403:NO_DATA_FOUND - **异常说明**:未找到数据。 - **常见原因**: - 查询条件不匹配任何行。 - 表可能为空。 - **解决方案**: - 审核查询条件,确保与表中的数据相匹配。 - 确认表中是否有数据...

    预定义异常

    9. **NO_DATA_FOUND (ORA-01403)** - 描述:单行查询未返回任何数据。 - 举例:查询指定的数据不存在于表中。 10. **NOT_LOGGED_ON (ORA-01012)** - 描述:未连接到Oracle即发出数据库调用。 - 举例:尝试在...

    oracle异常处理

    8. `No_data_found` (ora-01403):SELECT INTO 未返回任何行,或引用了未初始化的索引表元素。 9. `Too_many_rows` (ora-01422):SELECT INTO 语句返回多于一行数据。 10. `Zero_divide` (ora-01476):除数为零。 11...

    oracle恢复工具-FY_Recover_Data

    也就是说,此时,其基本数据并未被破坏,而是被系统回收、等待被重新分配————因此,要恢复被TRUNCATE的数据,需要及时备份其所在的数据文件。 ? ? 方法:用存储过程包Fy_Recover_Data ? ? 它是利用Oracle表...

    Oracle_存储过程exception异常处理大全及实例经典最终.docx

    例如,ORA-00942:table or view does not exist(表或视图不存在),ORA-01403:no data found(没有找到数据)。 ### 用户自定义的异常处理 用户自定义的异常处理是程序执行过程中,出现编程人认为的非正常情况...

    Oracle Exception汇总(自定义Oracle异常)

    1. **NO_DATA_FOUND** (ORA-01403): 当执行`SELECT INTO`语句时,如果没有返回任何数据,系统会抛出此异常。为了避免程序中断,可以使用`EXCEPTION WHEN NO_DATA_FOUND THEN`来捕获并处理这个异常。 2. **TOO_MANY_...

    ProC 线程安全问题案例

    在这种情况下,一个线程可能在执行SQL操作后关闭了游标,而另一个线程在不知情的情况下继续尝试关闭已被关闭的游标,从而引发错误`ORA-01403: no data found`和`ORA-2114: Invalid SQL Cursor usage: trying to ...

    ora10g客户端

    (DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleORCL)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=D:\oracle\ora10g\sqlplus.exe)...

    oracle异常总结

    - `NO_DATA_FOUND`(ora-01403):当SQL查询无结果或尝试访问未初始化的索引表元素时抛出。 - `TOO_MANY_ROWS`(ora-01422):`SELECT INTO`语句返回多于一行数据时抛出。 - `INVALID_NUMBER`(ora-01722):尝试将非数字...

    p28412269_112040_WINNT.zip

    REBOOT 2 CELL NODES, CHECKFILE FOUND CORRUPTION BLOCK IN 3 UNDO DATAFILES 12982566 ORA-06550: DBMS_DRS PACKAGE DOES NOT EXIST ON NEW STANDBY DB AFTER SWITCHOVER 打开自述文件以查看所有 Bug

    ORACLE 异常错误处理

    - `ORA-1403 No_data_found`:`SELECT INTO`没有找到数据。 - `ORA-1422 Too_many_rows`:`SELECT INTO`返回多行。 - `ORA-1476 Zero-divide`:试图被零除。 - `ORA-1722 Invalid-NUMBER`:转换一个数字失败。 - `...

    Oracle 存储过程异常处理.docx

    * NO_DATA_FOUND(ORA-01403):SELECT INTO 语句没有符合条件的记录返回 * TOO_MANY_ROWS(ORA-01422):SELECT INTO 语句符合条件的记录有多条返回 * DUP_VAL_ON_INDEX(ORA-00001):对于数据库表中的某一列,该...

    oracle常见Exception

    当SELECT INTO语句未能找到任何匹配的行时,系统会抛出`NO_DATA_FOUND`(ORA-01403)异常。 **解决方法:** 1. **添加异常处理**:使用EXCEPTION块来捕获并处理`NO_DATA_FOUND`异常。 2. **使用IF-NULL语句**:使用...

Global site tag (gtag.js) - Google Analytics