国人回贴子老是以为大家都很清楚了,非常吝惜字,知道的就详细的说一下好不好!!!!!!什么PACKAGE?!怎么编译? 写在哪里?!?

解决方案 »

  1.   

    jj.ocitest()是一个存储过程,如果简单的替换成SQL语句就一点问题都没有。
    我是在VC环境下编译的。
    #include <oci.h>
    #pargram comment "d:\.....\oci.lib"
    编译器认是没有问题的。
      

  2.   

    当然不是写在程序里了。写在Oracle里。按道理我看了一篇oci_instruction里写的,它给的一点小例子里就是直接用到上面的语句就可以用oci函数写了。但不知为何总报SQL无效?
      

  3.   

    建议你看这个,可能是编译的问题http://www.jwinfo.com/html/technology/oracle/Pro_C&C++.htm
      

  4.   

    记得好像应该这么写
    text *sql=(text*)"begin /
    jj.ocitest(); /
    end;";
      

  5.   

    谢谢,不过他给的是Proc/c++的例子,我说的是用OCI接口里的问题。
      

  6.   

    句子的写法是没有问题的(己在SQLPLUS里通过了)。
    text *sql=(text*)"begin \
    jj.OCITEST(); \
    end;";
    rc = OCIStmtPrepare(p_sql, p_err, sql,
    (ub4)sizeof(sql), (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT);
    p_bvi = 23;
    rc = OCIStmtExecute(p_svc, p_sql, p_err, (ub4) 1, (ub4) 0,
               (CONST OCISnapshot *) NULL, (OCISnapshot *) NULL, OCI_DEFAULT);
      

  7.   

    哪一句报错啊?
    可以看看p_err,报的是什么错text *sql=(text*)"begin \
    jj.OCITEST(); \
    end;";这一句肯定没错的