Oracle
 sql >> база данни >  >> RDS >> Oracle

Връщане на „таблица“ (без предварително дефинирани имена на колони) от PL/SQL функция

Бихсилно подозирате, че не искате да направите това. Динамичното създаване на типове обекти и изграждането на този вид гъвкавост в PL/SQL почти винаги е рецепта за разруха. В крайна сметка ще пишете изключително сложен динамичен SQL навсякъде (както в извикващите, така и във вашите функции), което ще направи вашия код много, много по-труден за четене и отстраняване на грешки. Когато кодът ви стане толкова сложен, по-добре е да пишете рамки, които генерират кода, но това ви оставя с много, много по-трудния проблем с писането на код, който генерира код, който решава проблема ви, вместо просто да пишете код, който решава проблема ви.

Въпреки това, ако сте наистина, наистина решени, е възможно да създадете напълно обща конвейерна таблична функция . Това включва дълбоко, дълбоко магьосничество с помощта на рамката на Oracle Data Cartridge. Доста е готино. Но броят на хората, които реалистично биха могли да поддържат и разширят този вид код, е много малък.

С малко по-малко магьосничество (но все пак много, много повече, отколкото бих предложил за почти всяка организация), можете да създадете функция за гъвкава конвейерна таблица който разчита на връщане на типове от предварително дефинирана йерархия на типове. Това е по-вероятно да бъде поддържано, но предполага, че можете да изградите своята йерархия на типове предварително.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Може ли управляваният от Oracle драйвер да използва правилно async/await?

  2. Как да намерите записи с рекурсивно припокриващи се диапазони от дати в Oracle DB

  3. Как да предам цял ред (в SQL, не в PL/SQL) към съхранена функция?

  4. ЕКСПОРТИРАНЕ КАТО ИЗЯВЛЕНИЯ ЗА ВМЕСВАНЕ:Но в SQL Plus редът отменя 2500 знака!

  5. Параметър за изчакване на връзката за Oracle DB от python