我如何在游标中使用 if 条件,因为我们的教授不允许我们在 select 语句中使用 where 子句

how do I use if condition in cursor because our professor don't allow us use where clause in the select statement

我们的问题是显示名称长度恰​​好为 5 个字母的所有国家/地区。这是游标代码,我想在其中添加 if 条件。

declare
cursor cursor_full is select * from country_cont;
begin
for counter in cursor_full 
loop 
dbms_output.put_line(counter.country|| ' ' || counter.continent);
end loop; 
end;

但是我的教授说你不能在 select 语句中使用 where 子句,你应该显示所有国家和大陆。

所以我尝试了这个代码:

declare
country varchar(50);
cursor cursor_full is select * from country_cont;
begin
if length(country)=5 then
for counter in cursor_full 
loop 
dbms_output.put_line(counter.country|| ' ' || counter.continent);
end loop; 
end if;
end;

脚本输出显示 PL/SQL 过程已成功完成,但 DBMS 输出中没有 return

希望有人能帮助我,我想了一个晚上,拜托!

变量 country 不包含任何值,它是 null 所以 if 条件永远不会为真并且 loop 永远不会执行。示例数据会有所帮助;同时,看看这是否有帮助。

begin
  for cur_r in (select * from country_cont) loop
    if length(cur_r.country) > 5 then
       dbms_output.put_line(cur_r.country|| ' ' || cur_r.continent);
  end loop; 
end;

别忘了set serveroutput on