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

Existuje způsob, jak zobrazit dynamické sloupce v Oracle apex

Nejprve obecná rada:Vypište proměnnou l_sql do vaší konzole pomocí dbms_output.put_line nebo použijte nějakou tabulku ladění, do které to můžete vložit. Dávejte pozor také na datový typ této proměnné. Pokud potřebujete rozšířit SQL, můžete dosáhnout bodu, kdy musíte použít CLOB proměnná místo varchar2 .

Pokud chcete mít svůj problém kompletně analyzován, budete muset dodat struktury tabulek a testovací data, proto vám nejprve poskytnu několik obecných vysvětlení:

Use Generic Column Names je v pořádku, pokud máte trvalé, neměnné množství sloupců. Pokud se však může změnit pořadí sloupců nebo dokonce jejich množství, je to špatný nápad, protože pokud váš dotaz povede k více sloupcům, než je Generic Column Count, stránka zobrazí chybu

Možnost 1:Použijte v dotazu aliasy sloupců

Vylepšete PL/SQL Function Body returning SQL Query způsobem, který vydává podrobné zobrazované názvy, jako je tento:

return 'select 1 as "Your verbose column name", 2 as "Column #2", 3 as "Column #3" from dual';

Vypadá to takto:

Má to tu nevýhodu, že názvy sloupců se v návrháři také zobrazují tímto způsobem a APEX tyto názvy sloupců aktualizuje pouze v případě, že funkci znovu ověříte. Budete mít problém odkazovat na sloupec s interním názvem Your verbose column name v procesním kódu nebo dynamické akci.

Stále to však funguje, i když změníte názvy sloupců, aniž byste sdělili APEX, například externalizací PL/SQL Function Body do skutečné funkce.

Možnost 2:Použijte vlastní záhlaví sloupců

Trochu skryté, ale existuje také možnost zcela vlastních záhlaví sloupců. Je téměř na konci atributů stránce vaší oblasti přehledu.

Zde můžete také zadat funkci, která vrátí názvy sloupců. Dávejte pozor, aby tato funkce neměla vracet dotaz SQL, který sám vrací názvy sloupců, ale místo toho vrací názvy sloupců oddělené dvojtečkou .

Pomocí této metody je snazší identifikovat a odkazovat na vaše sloupce v návrháři:

Možnost 3:Obojí

Vypněte obecné názvy sloupců, nechte svůj dotaz vracet názvy sloupců, které lze snadno identifikovat a odkazovat, a použijte custom column headings funkce vrací podrobná jména vašich uživatelů.

Můj osobní názor

Používám 3. možnost v produkční aplikaci, kde lidé mohou sami měnit množství a pořadí sloupců pomocí kyvadlových položek na stránce sestavy. Chvíli to trvalo, ale teď to funguje jako kouzlo, jako nějaký dynamický PIVOT bez PIVOT .




  1. Jak potvrdit jednotlivé transakce v Oracle PLSQL

  2. Deklarujte proměnnou typu řádku v PL/pgSQL

  3. Oracle SID a název služby; problémy s připojením

  4. Použití kontingenční tabulky se součty sloupců a řádků na serveru SQL Server 2008