oracle返回1405 1022是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle返回1405 1022是啥意思相关的知识,希望对你有一定的参考价值。

  简单地说呢,ORA-01405,这个错误的实质是试图把一个空值存入一个非空变量,多发生在存储过程或者PRO*C中,比如SELECT FIRE_DATE INTO :l_fire_date FROM EMP WHERE EMP_ID=\'XXXX\';如果此员工还在职,那么解雇日期FIRE_DATE自然也就是空值(NULL),此时可能发生ORA-01405错误。解决办法是对变量初始化,或者用NVL函数指定如果表中数值是NULL的话取什么值。
  ORA-01403说的是从数据表中查不到符合条件的记录,ORA-01405说的是能查到记录,但值为空,错误发生在试图把空值赋给非空变量(如果不是做这个赋值,那么也不会报ORA-01405)。
  不知道这么解释对你有没有帮助。
参考技术A oracle中返回ora-1405错误的含义是取到的列的值为null。
官方定义:
ORA-01405 fetched column value is NULL
返回ora-1405错误的含义是当前操作在配置中无法找到。

ORA-01022:
database operation not supported in this configuration

JAVA获取ORACLE存储过程返回结果集的问题

基本代码如下
callableDBUtil.prepareCallable("call p_cost_mainstayRpt_sum(?,?,?,?,?)");
callableDBUtil.registerOutParameter(1, OracleTypes.CURSOR);
callableDBUtil.setString(2, deptNo.toString());
callableDBUtil.setString(3, period);
callableDBUtil.setString(4, rpttype);
callableDBUtil.setString(5, selectType);

callableDBUtil.executeCallable();
OracleResultSet ors = (OracleResultSet) callableDBUtil.getObject(1);

现在这个存储过程在PL/SQL中测试能出来数据。但到了JAVA后台却获取不到。
也就是在
ORS.NETX()这里就没有进去了
换一个查不到的存储过程,却又可以获取到
说错了,换一个差不多的存储过程,一样的输出参数
v_list out SYS_REFCURSOR
这段代码又可以获取到

你存储过程中的 查询集返回语句不是最后一条,如:select * into
v_list from xxxx 要放到过程的最后一句或试下加个return v_list
参考技术A 111 参考技术B 建议检查下你的存储过程参数

以上是关于oracle返回1405 1022是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

oracle dual是啥表

oracle是啥意思?

array.splice = 是啥意思?

oracle normal 是啥意思

.class 在 Java 中是啥意思?

oracle中as是啥意思