我们的问题是显示名称长度恰好为5个字母的所有国家/地区。这是游标代码,我想在条件中添加条件代码。
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输出中未返回任何内容
希望有人可以帮助我,我整夜都在考虑它!
答案 0 :(得分:1)
变量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
。