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

Může dotaz Oracle SQL provést řetězcový dotaz vybraný z tabulky?

Obecně se nejedná o příliš dobrý návrh – ukládání SQL v tabulkách a jeho dynamické spouštění přináší nejrůznější problémy se zabezpečením a údržbou.

Pravděpodobně je možné (ačkoli je příliš pozdě v pátek, který začal příliš brzy na to, abych se to pokusil zjistit) udělat opravdu skvělý XML dotaz ve smyslu tento dotaz, který spustí count(*) proti každé tabulce ve schématu to vše udělá v jednom dotazu.

Pro drtivou většinu programátorů by však jednodušším přístupem bylo zacyklit dotazy, spouštět je jeden po druhém a výsledky někde uložit. Místní proměnná by mohla být například přidána do kolekce počtů.

FOR q IN (SELECT sql_text FROM query_table)
LOOP
  EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM (' || q.sql_text || ')'
     INTO some_local_variable;
  <<do something with the local variable>>
END LOOP;

Protože se pokoušíte vytvořit pohled, můžete vzít tuto logiku a vložit ji do funkce zřetězené tabulky. Udělali byste PIPE ROW vrátit data v rámci smyčky. Váš pohled by pak mohl být vytvořen nad funkcí zřetězené tabulky.



  1. Jak importuji soubor CSV do tabulky MySQL?

  2. mysql seřaďte podle názvu asc ingore vedoucí 'the'

  3. Skript importu CSV do Mysql, aby odpovídal polím

  4. Jak být více Laravel v aplikaci CRUD?