sql >> Databáze >  >> RDS >> Oracle

Je povoleno použití SELECT uvnitř zřetězené tabulkové funkce PL/SQL?

  1. obvykle se omezení DML týkají pouze příkazů modifikace (UPDATE, DELETE ...), takže SELECT by měl být v pořádku. Pokusím se najít konkrétní prohlášení od společnosti Oracle.

  2. Pohledy by byly vaším prvním nástrojem k modularizaci běžně používaných dotazů.

  3. Funkce mají oproti pohledům nevýhodu:pokud jsou volány z jiného SELECTu, nejsou provedeny ve stejném časovém okamžiku jako hlavní SELECT. Každé volání SELECT je konzistentní, ale protože SELECT jsou v kódu funkce a ne v hlavním SQL, můžete vrátit nekonzistentní výsledky. To není možné s pohledy a podvýběrem:pokud velký příkaz volá pohled, pohled se vytvoří ve stejném časovém okamžiku jako hlavní dotaz.

Aktualizovat :ohledně vašeho komentáře k parametrizovaným dotazům

Můžete sestavit parametrizované pohledy, tedy pohledy, které jsou závislé na proměnných nastavených před spuštěním. Zde je příklad na AskTom ukazuje, jak byste to mohli udělat pomocí userenv('client_info') nebo dbms_session.set_context .




  1. Jak vypustit seznam tabulky ze schématu v Oracle?

  2. get_driver_instance() spadne s Qt

  3. Jak zkopírujete záznam v tabulce SQL, ale vyměníte jedinečné ID nového řádku?

  4. PMA-SQL-ERROR při importu databáze