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.