ORACLE数据库,程序如下,go_oracle_sql是已经定义好的ORACLE连接事务实例long ll_total 
Declare test cursor For
  Select field1,field2
  from database1
  where field3='something' using go_oracle_sqlopen testll_total=go_oracle_sql.SQLNRowsdebug发现执行了ll_total=go_oracle_sql.SQLNRows以后,ll_total值为0,并没有获取实际的行数,不知道是不是oracle不支持该方法,请教应如何获取游标的行数,不用通过再写一个select count(*)之类的语句。

解决方案 »

  1.   

    假设你定义的游标叫C_cursor,用 C_cursor%rowcount 就可以返回游标推进的行数了。
     也可以用隐式游标 SQL%ROWCOUNT .
      

  2.   

    在PB里怎么将C_cursor%rowcount赋值给PB里定义的变量?
      

  3.   

    C_cursor%rowcount 返回的是游标推进的行数,这样和我用go_oracle_sql.SQLNRows的效果是一样的,我希望的是在循环开始之前就获取游标的总行数,而不是到目前为止推进到的行数。
      

  4.   

    不用select count(*)就知道游标将返回的行数?
    没见过,期待高手!
    帮忙up!
      

  5.   

    用count当然可以,效率低哦,游标里怎么没有保存这类信息,就象java的Resultset一样。