使用游标方法与PL/SQL中单行查询的开始 - 结束异常方法的优缺点

pod*_*oid 5 oracle plsql

每当编写PL/SQL中的查询时,只需要一行,通常有两种方法:

  1. 使用隐式SELECT INTO,检查TOO_MANY_ROWSNO_DATA_FOUND例外.
  2. 使用显式游标,只需从游标中获取第一行.

虽然两种方法都产生相同的结果,但这些方法的优缺点是什么?

Ton*_*ews 6

当一个select语句只能返回一行时,那么"SELECT INTO"就是更好的方法.是的,许多开发人员更喜欢使用游标并且只获取一行,因为它为他们节省了处理NO_DATA_FOUND的"麻烦" - 即他们在地毯下扫描问题并给用户留下一个神秘的bug.我最近写了一篇关于这种不良做法的博客.

(*一个糟糕的做法,通常在项目PL/SQL标准中被遗忘!)

至于计数和查询,这只是工作的两倍,所以也应该避免.