在使用OCCI时,因需输出的变量很多(30多个),使用OCIDefineByPos的太麻烦。
我将输出的变量定义为一个结构体,请教如何使用OCIDefineObject绑定结构体,有实例最好。

解决方案 »

  1.   

    有个问题,如果能回答下面问题也一样:
    我的fetch语句为
    OCIStmtFetch(
            sh, 
            conn->err, 
            (ub4) 1, 
            (ub4) fetchOption,
            (ub4) OCI_DEFAULT);fetchOption值为OCI_FETCH_NEXT能正常执行,如果为其他值则报错报错为:ORA-24391: invalid fetch operation,
    查看了下错误号的意思:
    24391, 00000, "invalid fetch operation"
    // *Cause:  Scrollable cursor operation requested with non-scrollable cursor.
    // *Action: Check if the statement was executed in the scrollable mode. Else
    //          the only acceptable orientation is OCI_FETCH_NEXT that ignores the
    //          scroll offset parameter. 
    我fetch使用OCI_DEFAULT模式是否就是 scrollable mode,如果要改为非 scrollable mode,该使用什么选项?
      

  2.   

    有个新问题,我在使用occi, 进行fetch某些字段时,如果有某字段为NULL,则报错
    ORA-01405: fetched column value is NULL
    返回非0(表示错误)
    有无选项可以忽略此错误,让其返回0,让fetch循环继续执行下
      

  3.   

    OCIStmtFetch出现ORA-24391: invalid fetch operation的问题我已解决,不用回答。
    不知为啥自己没有权限删除此部分回帖,告诉下解决办法,更改cursor模式
    OCIStmtFetch(
            sh, 
            conn->err, 
            (ub4) 1, 
            (ub4) fetchOption,
            (ub4) OCI_DEFAULT| (ub4)OCI_STMT_SCROLLABLE_READONLY)
      

  4.   


    请问将哪个参数设置为NVL
      

  5.   

    使用NVL是一种方法,如果获取的字段多则每个字段都要使用NVL。
    能否对输入参数进行选择,使得在fetch时忽略此错误而继续执行