oci编程,避免报错误ORA-01405: 提取的列值为 NULL
来源:互联网 发布:网络大电影预算 编辑:程序博客网 时间:2024/06/05 14:49
指示器变量:由于在Oracle中,列值可以为NULL,但在C语言中没有NULL值,为了能使OCI程序表达NULL列值,OCI函数允许程序为所执行语句中的结合变量同时关联一个指示符变量或指示符变量数组,以说明所结合的占位符是否为NULL或所读取的列值是否为NULL,以及所读取的列值是否被截取。
除SQLT_NTY(SQL Named DataType)外,指示符变量或指示符变量数组的数据类型为sb2,其值说明:
作为输入变量时:(如insert ,update语句中)
=-1:OCI程序将NULL赋给Oracle表的列,忽略占位符结合的程序变量值
>;=0:应用程序将程序变量值赋给指定列
作为输出变量时:(如select语句中)
=-2:所读取的列数据长度大于程序变量的长度,则被截取。
=-1:所读取的值为NULL,输出变量的值不会被改变。
=0:数据被完整读入到指定的程序变量中
>0:所读取的列数据长度大于程序变量的长度,则被截取,指示符变量值为所读取数据被截取前的实际长度
sword OCIBindByPos ( OCIStmt *stmtp,
OCIBind **bindpp,
OCIError *errhp,
ub4 position,// 绑定的位置
dvoid *valuep,
sb4 value_sz,
ub2 dty,
dvoid *indp, //指示器变量
ub2 *alenp,
ub2 *rcodep,
ub4 maxarr_len,
ub4 *curelep,
ub4 mode );
在调用OCIBindByPos函数时,indp参数设为一个sb2*即不会报错误 ORA-01405: 提取的列值为 NULL
http://hi.baidu.com/whlcshit/blog/item/eb8a4223eb249e4fac34de07.html
- oci编程,避免报错误ORA-01405: 提取的列值为 NULL
- oci编程,避免报错误ORA-01405: 提取的列值为 NULL
- ORA-01405: 提取的列值为 NULL--报错原因及解决方案
- MySQL已有column值为NULL,修改列属性为NOT NULL报1138错误
- findViewById值为null,报nullpointer错误的问题
- 【javaScript】报getElementId()为Null的错误
- null值判断的一个避免错误
- ORA-01758: 要添加必需的 (NOT NULL) 列, 则表必须为空
- 安装ArcSDE for oracle的时候报oci.dll错误
- 关于导入数据库dmp时遇到的错误 “ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值”
- [MSSQL]试图将非可空值的列的值设置为 NULL
- [MSSQL]试图将非可空值的列的值设置为 NULL
- navicat cannot load oci dll||oracle 改字符集为GBK后 navicat 连不上||Ora-28547 ora net错误
- EXT.NET 2.1 combobox报错: 行: 21 错误: 无法获取属性“1”的值: 对象为 null 或未定义
- Db2数据库中错误提示:23502,不能把null 直插入到定义为not null 的列中
- goldengate OCI Error ORA-01400: cannot insert NULL
- 列值为null相关知识
- 关于oracle采用pivot函数列转行后一些列的值为null处理
- SQLite的shell简单使用
- Oracle分页查询语句(三)
- 修改Windows环境变量后不重新启动使之立即生效的方法
- win2003 flv不能播放的解决办法
- System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
- oci编程,避免报错误ORA-01405: 提取的列值为 NULL
- asp.net state server与nod32冲突
- 读书计划
- org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction
- DataTable行转列
- css自适应宽度
- centos cmake 安装 mysql-5.5.16 附配置文件
- checkboxlist取值
- 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联