sql里的function是不能有DML语句的所以你这里的select func_myfunc from dual;是不能执行的。建议你有错的时候,可以先在sql环境里执行以下sql语句就知道问题了,不至于到联调的时候才发现sql里的错误至于上面welyngj提到的也是需要注意的如果要在function里做DML是需要考虑事务的。比较麻烦,所以最好还是在procedure里去做这些东西。
首先你必须要有oracle的服务器端(或客户端),然后你可以在oracle文件夹中找到oci的头文件和库文件。如果你是由vc6.0编辑程序的话,你需要在Project Setting-〉C/C++属性页-〉Category中选择”Preprocessor”,在Additional include directories:中添加oci.h所在的目录。然后在Preject Settings-〉Link页中,Category选择General,在Object/Library modules中填写oci.lib的完整名称(即包含路径名),将oci.lib配置进去,就可以OK啦 如果你是在linux或者unix环境下用gc,就需要修改环境变量和makefile了。这个就比较麻烦了。
sql里的function是不能有DML语句的所以你这里的select func_myfunc from dual;是不能执行的。建议你有错的时候,可以先在sql环境里执行以下sql语句就知道问题了,不至于到联调的时候才发现sql里的错误至于上面welyngj提到的也是需要注意的如果要在function里做DML是需要考虑事务的。比较麻烦,所以最好还是在procedure里去做这些东西。
如果你是在linux或者unix环境下用gc,就需要修改环境变量和makefile了。这个就比较麻烦了。