8. 当应用进程与服务器断开连接时,程序没有使用OCITransCommit()进行事务的提交,则所有活动的事务会自动回滚。 9. OCI重定义数据类型 typedef unsigned char ub1; typedef signed char sb1; typedef unsigned short ub2; typedef signed short sb2; typedef unsigned int ub4; typedef signed int sb4; typedef ub4 duword; typedef sb4 dsword; typedef dsword dword;
10. 在SQL语句准备后,可以用OCIAttrSet(0设置该语句的类型属性OCI_ATTR_STMT_TYPE,以后可读取语句属性,根据属性分别进行处理。 11. 批量绑定输入和定义输出参数:将数据存入一个静态数据组中。一次执行可以提交或读取多行记录值。 12. 结合占位符和指示器变量: 占位符:在程序中,一些SQL语句需要在程序运行时才能确定它的语句数据,在设计时可用一个占位符来代替,当程序运行时,在它准备好语句后,必须为每个占位符指定一个变量,即将占位符与程序变量地址结合,执行时,Oracle就从这些变量中读取数据,并将它们与SQL语句一起传递给Oracle服务器执行。OCI结合占位符时,它将占位符与程序变量关联起来,并同时要指出程序变量的数据类型和数据长度。 如:select * from test where name=:p1 and age>;:p2 :p1和:p2为占位符
OCIBindArrayOfStruct() Set skip parameters for static array bind ,数组绑定,一般用于批量操作 OCIBindByName() Bind by name 按名绑定 OCIBindByPos() Bind by position 按位置绑定,建议一般按此方式绑定 OCIBindDynamic() Sets additional attributes after bind with OCI_DATA_AT_EXEC mode OCIBindObject() Set additional attributes for bind of named data type
OCIDefineArrayOfStruct() Set additional attributes for static array define OCIDefineByPos() Define an output variable association OCIDefineDynamic() Sets additional attributes for define in OCI_DYNAMIC_FETCH mode OCIDefineObject() Set additional attributes for define of named data type