sql >> Databasteknik >  >> RDS >> Oracle

Oracle-markörens returtyp

Från konceptguiden :

Den viktiga frasen där är "rekordorienterad". syntax för explicit markördeklaration visar också tydligt att returtypen måste vara en rowtype , som den definierar som:

Du ber den att returnera datatypen för en enskild kolumn, inte för en rad/post. Om du inte vill använda en befintlig %ROWTYPE då tillhandahåller Oracle mekanismen för att deklarera en posttyp istället, som ett annat svar redan har visat.

Du verkar klaga på att dokumentationen inte säger att du inte kan använda ett skalärt värde som avkastning. Det står inte heller att du inte kan returnera ett paket, en vy eller en roll. Den behöver inte uttömmande lista allt du inte kan gör, eftersom det tydligt talar om exakt vad du kan do, vilket är att returnera en typ som representerar en rad.

I ditt fall behöver den radtypen bara innehålla en enda kolumn, men det finns fortfarande ingen anledning att du ska kunna - eller förvänta dig att Oracle ska - låta dig ta en genväg i det mycket begränsade scenariot. Det verkar inte orimligt att tillhandahålla en enda konsekvent mekanism - det är inte mycket svårt för dig att deklarera record , medan att bygga, testa och upprätthålla en separat väg för detta skulle vara en stor omkostnad.



  1. Django - Hur länkar man till en äldre databas via mellanhand?

  2. Oracle ojdbc8 12.2.0.1 Förbjudet av Maven

  3. MySQL JOIN-prestanda på 1 stort bord och flera små bord

  4. Mysql-utskrifter hjälper istället för att ansluta till servern