PL/SQL参数化游标无数据返回问题求助
PL/SQL参数化游标无数据返回的排查与解决
核心问题:表未关联导致无效过滤
你的游标查询同时引用了employee和country表,但未指定两表的关联条件,会生成笛卡尔积(所有员工行与国家行的全组合)。再通过lower(country_name) = lower(cname)过滤后,大概率没有符合条件的组合,因此无数据返回。修复方案:添加表关联条件
需要明确两张表的关联字段,比如假设employee表有country_id字段关联country表的id,修改游标语句如下:cursor empCur(cname varchar2) is select empID, name from employee e join country c on e.country_id = c.id -- 添加两表关联条件 where lower(c.country_name) = lower(cname);额外排查方向
- 确认输入的
countryname值在country表中真实存在(已用lower()转换,大小写不影响匹配) - 检查
employee表中是否有属于该国家的员工数据
- 确认输入的
内容的提问来源于stack exchange,提问作者were
相关产品推荐
相关产品推荐

