そこにある重要なフレーズは「レコード指向」です。 明示的なカーソル宣言の構文
また、戻りタイプはrowtype
でなければならないことも明確に示しています 、それは次のように定義します:
行/レコードではなく、単一の列のデータ型を返すように要求しています。既存の%ROWTYPE
を使用したくない場合 次に、別の回答がすでに示しているように、Oracleは代わりにレコードタイプを宣言するメカニズムを提供します。
ドキュメントには、戻り値としてスカラー値を使用できないとは記載されていないことに不満を持っているようです。また、パッケージ、ビュー、またはロールを返すことができないとも言っていません。 できないすべてを網羅的にリストする必要はありません。 それはあなたができることを正確に教えてくれるからです do、これは行を表す型を返すことです。
あなたの場合、その行タイプには単一の列を含める必要がありますが、それでも、非常に限られたシナリオでショートカットを使用できるようにする、またはOracleに期待する理由はありません。単一の一貫したメカニズムを提供することは不合理ではないようです-record
を宣言することはそれほど難しいことではありません 、一方、それらは、このための別個のパスを構築、テスト、および維持することは、かなりのオーバーヘッドになります。