私は、このPL/SQLの機能があります。戻り値より
はexact fetch returns more than requested number of rows
サブクエリを持つacctId
を見つけようとします:私は上記のコードを実行すると
Create Or Replace Function mostMealOrders
Return varchar
Is
name_phone varchar(200) := ' ';
Cursor c1 Is
Select acctid
From MealOrder Natural Join Customer
Group By acctid
Having Count(*) >= All (Select Count(*)
From MealOrder
Group By acctid);
Begin
For acctNum in c1
Loop
Select (name || ' ' || phone || ', ')
Into name_phone
From Customer
Where acctid = acctNum.acctid;
End Loop
Return name_phone;
End;
/
Show Errors;
が、私はこのエラーが発生したがOrderTable
からのほとんどの注文。
サブクエリが複数のacctidを返しているため、エラーが発生していると考えられます。誰も私が外側のクエリでやろうとしているようにサブクエリから返されたすべてのacctid's
の名前と電話を取得する方法を知っていますか?
[カーソル](http://www.techonthenet.com/oracle/loops/cursor_for.php)を使用することができます。しかし、それは常に最適な解決策ではありません。それぞれの値に基づいて更新を実行することを目的としている場合は、大量の 'update'ステートメントで行うことができます。 – trincot
私はすべてのacctidをカーソルに入れてからループして、顧客名と電話機をすべてBeginの内部の文字列に連結しますか? – LP496
私はあなたの質問からあなたがそれぞれの価値について何をしているのか分かりません。ただ1つの値に連結する目的はありますか?コードの一部を表示することもできますか? – trincot