oracle 能否在视图中捕获错误

我有一个比较复习的视图,关联20多张表,而且每个表的数据都在不断变化,近日发觉有时查询视图时报错(什么cast、非法数字转换)等等,过一会又正常,初步确定肯定在某一时刻的数据存在问题,过一会数据正常了,视图也就正常了。现在问题是有没有办法在视图中增加一个捕获错误的代码,比如try...catch之类?单靠查询报错的信息很有限。谢谢

阅读 2.4k
1 个回答

视图本身不存储数据,可以简单理解成sql语句的别名,如果sql语句没有语法错误,视图在没有实际执行前是无法判断是否有错误的。

你说的问题主要是数据格式不符合视图的要求造成的,如果想提前进行判断只能在关联表中增加触发器,根据视图中的转换逻辑记录错误的数据行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进