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

jak předat název tabulky jako parametr do uložené procedury?

Nemůžete vytvořit %ROWTYPE proměnnou pro neznámou tabulku a nemůžete staticky odkazovat na názvy sloupců, když neznáte název tabulky v době kompilace.

Balíček dbms_sql můžete použít ke zpracování zcela dynamických příkazů SQL. Budete muset připravit příkaz SQL, popsat sloupce, abyste zjistili počet sloupců a jejich datové typy, svázat vhodné proměnné a poté načíst data. Je to mnohem těžkopádnější způsob psaní kódu než příklad, který jste zveřejnili, ale poskytuje vám extrémní flexibilitu.

V dokumentaci, na kterou jsem odkazoval, je řada příkladů použití balíčku dbms_sql. Můžete také vyzkoušet funkci dump_csv Toma Kytea, která zapisuje výsledek libovolného dotazu do souboru CSV pomocí UTL_FILE . Pokud opravdu chcete zapsat data do DBMS_OUTPUT , můžete jednoduše nahradit UTL_FILE volání pomocí DBMS_OUTPUT . Ale jsem si docela jistý, že chcete udělat něco užitečnějšího, než jen zapisovat data do DBMS_OUTPUT buffer, takže Tomův postup je pravděpodobně blíže tomu, čeho se skutečně snažíte dosáhnout.




  1. Jak se připojit k databázi MySQL nebo MariaDB

  2. Vazba parametrů dotazu podle názvu s ODP.NET

  3. Jak změnit heslo databáze

  4. Jak mohu používat Psycopg2's LoggingConnection?