oracle - 游标返回 0 作为计数,即使表中有可用的值可用于游标中提到的查询
问题描述
我们创建了一个函数来查找表中的重复条目。即使表中有重复项,函数中的光标也始终返回 0。我们可以通过执行查询获得准确的重复计数,但是当我们在游标中使用相同的查询时,它的行为方式会有所不同。
我们已经尝试执行查询。它给出了预期的结果,但是当与函数结合时,它的行为方式不同。
create or replace function PL_DEV(dev_level in varchar2, remarks in
varchar2,wi_name in varchar2)
return number
is
resp number(8);
records number(10);
CURSOR RECORDS_INFO
IS
select count(WI_NAME) as reccount from PL_AUTO_DEV_GRID where
DEV_LEVEL=dev_level and REMARKS_MITIGANTS=remarks and WI_NAME=wi_name;
RECORDS_INFO_OBJ RECORDS_INFO%ROWTYPE;
begin
DBMS_OUTPUT.PUT_LINE('dev_level=='||dev_level||'');
DBMS_OUTPUT.PUT_LINE('remarks=='||remarks||'');
DBMS_OUTPUT.PUT_LINE('wi_name=='||wi_name||'');
OPEN RECORDS_INFO;
FETCH RECORDS_INFO INTO RECORDS_INFO_OBJ;
DBMS_OUTPUT.PUT_LINE('count from db=='||RECORDS_INFO_OBJ.reccount||'');
records:=RECORDS_INFO_OBJ.reccount;
DBMS_OUTPUT.PUT_LINE('records=='||records||'');
CLOSE RECORDS_INFO;
if records=0 then
resp:=0;
end if;
if records!=0 then
resp:=1;
end if;
return resp;
end;
预期结果:精确计数
实际结果:0
解决方案
推荐阅读
- amazon-web-services - aws: .net Core:压缩构建的代码并复制到 s3 输出存储桶
- authorization - 如何验证守护程序以访问 MS 自定义翻译 API
- python - 如何在堆叠的水平条形图中将跟踪文本对齐到中心
- javascript - 如何在 React 的 setState 上的对象数组上添加一个项目?
- css - REM 字体大小未调整到任意阈值以下
- python - 熊猫分组行到列表和总和
- r - R 内存在 rm() 之后没有被释放;环境中没有物体
- powershell - IF 语句中出现意外的标记
- javascript - 访问和更改不可变对象中的嵌套值
- asp.net-identity - BoilerPlate 配置 LoginPath 和 AccessDeniedPath 的选项