“ORA-06592: CASE not found while executing CASE statement”错误

2014-11-24 17:28:10 · 作者: · 浏览: 0

今天验证DDL类型触发器时遇到:


"ORA-06592: CASE not found while executing CASE statement"错误


网上找到如下答案:


CASE语句,碰到没有处理的分支而又缺少ELSE子句就会报错:


"ORA-06592: CASE not found while executing CASE statement"


CASE表达式,在没有匹配的选项又没有ELSE的情况下返回NULL


CASE语句与CASE表达式


简单case语句与搜索式case语句的异同


--相同点:两者都用于根据不同的条件,来执行与之对应的语句或完成特定的任务,甚至某些情况下可以互换替换。


--不同点:


--简单case语句提供一个selector选择器,且EXPRESSION的数据类型一定与selector的数据类型匹配,否则报错。


--搜索case语句没有selector选择器,且when子句之后得到的结果一定是一个布尔型值(NULL,TRUR,FALSE)