我们的问题是显示名称正好有 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;
但是,我的教授说,您不能在选择语句中使用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 输出中没有返回任何内容
希望有人能帮我,我花了一整夜的时间考虑一下,拜托!
变量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
.