oci编程,避免报错误ORA-01405: 提取的列值为 NULL

ORA-01405: 提取的列值为 NULL--报错原因及解决方案 此使用SEL  阅读详情

指示器变量:由于在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

STM32CubeMX+FreeRTOS实战:3步搞定LED任务配置(附代码解析) 本文详细解析了如何使用STM32CubeMX图形化工具配置FreeRTOS实时操作系统,并创建LED闪烁任务。通过剖析MX_FREERTOS_Init()函数和CMSIS-RTOS封装层,深入理解任务创建、调度及osDelay()协作机制,帮助开发者从点击生成进阶到内核原理掌握,实现高效的多任务嵌入式开发。 阅读详情

相关推荐

【Konva】解决图形加入group后无法获取到绝对坐标,以及group内绘制新图形坐标偏移的问题

解决konva绘图开发时“图形加入group后坐标不会变动,无法获取到绝对坐标”的问题

近10年前端开发工作经验,为你分享日常经验所得 1499

ORA-01405: 提取的列值为 NULL

使用c#的OracleClient调用oracle查询的时候出现“ORA-01405: 提取的列值为 NULL”错误,然后调试将Sql语句到Pl/Sql Developer中执行是正常的,网上查了也有很多人遇到此问题说是null空值的问题,可还是不清楚怎么解决,后来发现有一列好像全部都是空的,就把此列加了nvl(img,0)来处理,这样程序中就可以正常执行了,看来OralceClient是有小bug的,如果整列都为null的话就会报此错误 ...

飞翔的学习笔记 982

别再手动更新Excel了!用Jira看板管理你的个人项目(附保姆级配置流程)

本文详细介绍了如何利用Jira看板替代Excel进行个人项目管理,提供从注册到配置的保姆级教程。通过极简看板模式、自动化规则和数据分析功能,帮助用户实现任务可视化、协作高效化和提醒自动化,大幅提升个人工作效率。特别适合需要管理复杂个人项目的用户。

weixin_42699679的博客 228

OCI : ORA-01405: 提取的列值为 NULL

前言 4个月以前,预研了tns314的包分析。当时写了一个OCI测试程序,用来配合抓包。 现在将运行环境搞掉了,重新安装客户端后,发生了2个问题。 * 装32bits的oraclient, 编译的是64bits的OCI测试程序,引起报错。 解决方法:将测试工程种加入32bits和64bits的OCI库,根据安装的oraclient的不同(32bits/64bits),...

博客标题不能为空 2096

STM32内存大小与地址的对应关系以及计算方法

1、概述 在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。 最被大家熟知的是计算机内存,计算机内存有4G、8G,16G等等,对于程序员而言,要在代码中操作这些内存,肯定得知道内存的地址,此外,还需要会计算地址与内存大小的计算方法与对应关系。STM32作为微

Ace's Blog 4万+

【TC3xx芯片】TC3xx芯片电源管理系统PMS详解

本文主要介绍了TC3xx芯片的电源管理系统(PMS),重点探讨了供电模式选择、电源监控机制及电源管理模式。文章首先分析了4种供电模式及其硬件配置方式,详细说明了3.3V单电源供电模式的特点;其次阐述了Primary和Secondary两种电源监控机制,包括阈值配置和异常中断处理;最后重点讲解了CPU和系统的电源管理模式,特别对Standby模式及其进入/退出条件进行了详细说明。文章以软件开发视角解析了TC3xx芯片的电源管理功能,为ECU低功耗设计提供了技术参考。

redparrot2008的博客 1526

oracle 01405 提取的值为null,oci编程,避免报错误ORA-01405: 提取的列值为 NULL

指示器变量:由于在Oracle中,列值可以为NULL,但在C语言中没有NULL值,为了能使OCI程序表达NULL列值,OCI函数允许程序为所执行语句中的结合变量同时关联一个指示符变量或指示符变量数组,以说明所结合的占位符是否为NULL或所读取的列值是否为NULL,以及所读取的列值是否被截取。除SQLT_NTY(SQL Named DataType)外,指示符变量或指示符变量数组的数据类型为sb2,...

weixin_28912017的博客 296

华为OD机试真题 新系统【进制转换后自定义排序】

华为OD机试 新系统真题【进制转换后自定义排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【进制转换后自定义排序】多语言题解。

qq_45776114的博客 594

领会ORA-01405错误的含义和解决

这是杂货铺的第458篇文章在写Oracle proc程序的时候,经常会判断,sqlca.sqlcode是否是1405,这次应用搬迁,再次领会了他的真实作用。原始code的...

bisal的专栏 4015

2026国内Claude Code保姆级教程:安装、避坑、防串台全优化

安装 Claude Code CLI + 切换 npm 国内镜像优先配置固定关闭:自动联网、自动项目扫描VSCode 内置终端直接用,不装多余插件会话隔离+指令约束,彻底解决 Rust、小程序 跨语言串台。

lpfasd123的博客 2541

华为昇腾云平台适配Baichuan2大模型记录

文件发现报错:ValueError: The pipeline stage 2 in auto_parallel_context is not equal to the pipeline_stage 1 in the config.run_baichuan2_7b.yaml`,发现默认设备数是16卡,对应的pipeline_stage为2,但实际是8卡,那就改成下面的试试看。,将Baichuan2_7B_Chat.ckpt文件复制进去,将。点击镜像管理,突然发现有个2_2_0,赶紧新建了一个,成功。

羊城迷鹿的博客 2390

oracle -1405错误解决方法

PROC中的NULL值的处理 如果某一字段取出的值是NULL,会报:sqlcode=-1405, sqlerr=ORA-01405: 读取的列值为 NULL 并且相应的宿主变量的值不会被改变,为执行该SQL语句之前的值. 常用的处理NULL值的方法有: (1)采用指示器变量,此时不会有-1405错误,当必须是所以为NULL的字段都有相应的指示器变量,如果某一字段没有指示器变量,但取出的值 为NUL

nanyun2010的专栏 2万+

我的PCB设计经验总结及最容易犯错的100例之二B07

本文总结了PCB设计中的常见错误及解决方法。作者通过记录自身及他人的设计失误,系统归纳了高频、隐蔽且致命的问题,如电容中间穿线、高速信号跨分割、锐角布线等。重点提出从错误中提炼规律,建立分类案例库,并开发自动化检查工具的方法。案例涵盖高速信号处理、电源设计、EMC防护等关键领域,强调通过原理理解和实践验证提升设计质量。文章建议工程师建立个人错误数据库,从被动纠错升级为主动预防,最终形成系统化的设计方法论,提高PCB一次成功率。

启芯硬件的博客 82

oracle 01405 提取的值为null,ORA-01405: 提取的列值为 NULL

版本号:705业务场景(如下):GS6升级GS7测试环境;打了税务模块初始补丁;开票申请使用的事业部ADP表单运行时定制开票申请选择核算单位时报错ORA-01405: 提取的列值为 NULL ,已参考问答里其他同事的提问处理,但未解决。且已联系表单开发老师,排查后不是SQL和数据问题。预期效果(如下):实际效果(如下)(包括错误,异常):选择核算单位帮助后报错执行构件CE_WebPC_帮助业务逻辑...

weixin_39816027的博客 424

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

oracle 01405 提取的值为null,ORA-01405 : fetched column value is NULL

ORA-01405错误原因,场景在使用 select into from语句时 from 子查询查到字段值有为NULL,into的时候不能为NULL 。可以使用 oracle NVL()函数将 NULL替换。NVL() 函数NVL()将NULL转换为指定的值,类型要一致。现在查到的字段有值伪NULL,将其换成一个空格的字符串传入到into的...

weixin_34857730的博客 1237

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

oracle 01405 提取的值为null,ORA-01405: 提取的列值为 NULL--报错原因及解决方案

报错信息:ORA-01405: 提取的列值为 NULL问题出现原因:形如SELECTa INTO :a FROM NewXCDataWHERE a = 'test';如果a的值为空,则会报此错误。问题解决方案:SELECTNVL(a,'default') INTO :a FROM NewXCDataWHERE a = 'test';注意:不能因为a本来就为空,而作如下二种赋值:1、S...

weixin_39653078的博客 819

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

proc*c sqlcode=[-1405];sqlerr=[ORA-01405: fetched column value is NULL

指示变量的值,及其代表的含义如下:     0:操作成功     -1:该指示变量对应的宿主变量返回了或插入、更新成了NULL值     -2:从数据库存放数据到对应的宿主变量时,数据超长,并且不能推断出截断了多少字节的长度     >0:在FETHC或SELECT语句时,因数据超长而被截断存放在了对应的宿主变量中,         指示变量存放对应列的长度 如果不用指示变量在SELE

ice2000feng的专栏 2074

oracle 01405 提取的值为null,OCI : ORA-01405: 提取的列值为 NULL

#include // OCI开发环境配置// 远端oracle服务器端装好,配好TNS服务名称//// 安装oracle客户端软件时,选第3项(开发工具).// oracle客户端安装完后,用自带的网络助手配置监听器和远端的TNS服务名称//// 将工程设定为win64, 包含进OCI头文件和库文件.// 在打开远端oracle服务器(进入服务器桌面)的情况下,就可以运行调试测试程序了.// 不...

weixin_35196909的博客 418

在oracle 11.2.0.1.0以上版本会提示"提取的列值为 NULL "原因

在oracle 11.2.0.1.0及以下版本没问题,但在以上版本则报"提取的列值为 NULL" 1.在查询中做外关联时,如果需要查询的列中有NULL值则会报该错,需要用NVL来避免该错 ...

HSL888的专栏 348

Oracle查询字段中有为null的需要格外注意

今天需要去数据库取一些数据 SELECT * FROM T_JC_TEACHER_INFO WHERE SCHOOL_CODE ='xxxx'AND TEACHER_TYPE = '专任教师'AND AUDIT_STATE = '2'AND ATTACHED_CLASS_TYPE IS NULL; 查出的数据大概如下 可以看到ABNORMAL_TYPE_GR

雨夜星辰03--的博客 3859
上一篇: 删除Linux上Oracle文件卸载Oracle
下一篇: Widows远程桌面 连接ubuntu
beyondchx
博客等级 码龄19年 238粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值