比如这个sql语句
SELECT qybh FROM kd_storage_pc_mx
WHERE pcjhh = :vc_pcjhh
AND qybh = :vc_qybh
返回 一个值不会报错,但多个值报错?什么原因呢?错误名为:select ... into returns more rows
别说加 DISTINCT,我需要的是原因
SELECT qybh FROM kd_storage_pc_mx
WHERE pcjhh = :vc_pcjhh
AND qybh = :vc_qybh
返回 一个值不会报错,但多个值报错?什么原因呢?错误名为:select ... into returns more rows
别说加 DISTINCT,我需要的是原因
WHERE pcjhh = :vc_pcjhh
AND qybh = :vc_qybh
你这个写在过程里,需要变量保存你得到的结果,
SELECT qybh INTO 变量名
FROM kd_storage_pc_mx
WHERE pcjhh = :vc_pcjhh
AND qybh = :vc_qybh
或者定义一个pl/sql表tmp
SELECT qybh bulk collect into tmp
FROM kd_storage_pc_mx
WHERE pcjhh = :vc_pcjhh
AND qybh = :vc_qybh
那你这个错误哪里来的?
没数据,会报 NO_DATA_FOUND。
多于一条,就是你看到的了。
原因:
select A into v_a from.....
因为v_a 是一个变量,不能被fetch多个值。
就跟程序里面
String a;
a={"1","2"}...是会有问题的。
只是报错信息是"select ... into returns more rows"
如果返回一行就没有问题,且你只需要返回一行
用
SELECT max(qybh) FROM kd_storage_pc_mx
WHERE pcjhh = :vc_pcjhh
AND qybh = :vc_qybh
and rownum<2;
吧
难道你要我的调试语句?
完整的就 EXEC SQL SELECT qybh FROM kd_storage_pc_mx
WHERE pcjhh = :vc_pcjhh
AND qybh = :vc_qybh
现在大家知道答案了吗?望大家赐教啊
早知道是c就路过了,反正不会。。
从这条语句单看你是没有使用select into把表中取得的数据赋给哪个变量
可是会不会在程序中的其他什么地方这样做了
那么就会导致那个错误了