Oracle Apex 5で作業していますが、次のコードでアプリケーションを実行しようとすると、行数」「正確なフェッチが要求された行数を超えて返されます」
DECLARE
TERRANUMBER VARCHAR2(40);
BEGIN
SELECT CONCAT(YEAR, '-')
INTO TERRANUMBER FROM MP_APPLICATIONS;
END;
Oracle Apex 5で作業していますが、次のコードでアプリケーションを実行しようとすると、行数」「正確なフェッチが要求された行数を超えて返されます」
DECLARE
TERRANUMBER VARCHAR2(40);
BEGIN
SELECT CONCAT(YEAR, '-')
INTO TERRANUMBER FROM MP_APPLICATIONS;
END;
変数teranumberは1つの値しか保持できません。したがって、クエリを選択すると複数の行が返された場合、このエラーがスローされます。今年の
declare
terranumber varchar2(40);
begin
select concat(year, '-') into terranumber
from mp_applications
where rownum = 1;
end;
/
おそらく、あなたはmax
(またはmin
)を取得したい:
あなたが値のいずれかをしたい場合は
declare
terranumber varchar2(40);
begin
select concat(max(year), '-') into terranumber
from mp_applications;
end;
/
それとも、すべての値にアクセスしたいかもしれ1つずつ:
begin
for rec in (select concat(year, '-') as year from mp_applications)
loop
-- use rec.year as required
end loop;
end;
/
ありがとうございます。レンダリングされたアプリケーション。 – ruchithelamp
私はrownumを使うと、(連結して)呼び出された列から最初の行を取得するだけです。列の最新の行を取得するにはどうすればよいですか? (TOPおよびLIMITはOracle Apex 5では動作していません) – ruchithelamp
INTO句を使用するときに選択できる行は1つだけです。通常、WHERE句の条件を追加して、返されるデータを1行に制限します。または、あなたがしようとしていることに依存するコース。
「CONCAT(YEAR、 ' - ')FROM MP_APPLICATIONS'を実行してみてください。明らかに1つの変数に入れることができない複数の行を返すことがわかります。値のいずれかを取得したいですか?おそらく最大/分ですか? – GurV