Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy istnieje sposób na wyświetlanie dynamicznych kolumn w wierzchołku Oracle?

Najpierw ogólna wskazówka:wypisz swoją zmienną l_sql do konsoli za pomocą dbms_output.put_line lub użyj jakiejś tabeli debugowania, do której możesz ją wstawić. Uważaj także na typ danych tej zmiennej. Jeśli potrzebujesz rozszerzyć SQL, możesz osiągnąć punkt, w którym musisz użyć CLOB zmienna zamiast varchar2 .

Będziesz musiał podać struktury tabel i dane testowe, jeśli chcesz, aby Twój problem został całkowicie przeanalizowany, dlatego najpierw podam kilka ogólnych wyjaśnień:

Use Generic Column Names jest ok, jeśli masz stałą, niezmienną ilość kolumn. Ale jeśli kolejność kolumn lub nawet ich ilość może się zmienić, jest to zły pomysł, ponieważ strona wyświetli błąd, jeśli zapytanie da więcej kolumn niż Generic Column Count

Opcja 1:użyj aliasów kolumn w zapytaniu

Ulepsz swoją PL/SQL Function Body returning SQL Query w taki sposób, że wyświetla pełne nazwy, takie jak:

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

Wygląda to tak:

Ma to tę wadę, że nazwy kolumn również pojawiają się w ten sposób w projektancie, a APEX zaktualizuje te nazwy kolumn tylko wtedy, gdy ponownie zweryfikujesz funkcję. Będziesz miał trudności z odwołaniem się do kolumny o wewnętrznej nazwie Your verbose column name w kodzie procesu lub akcji dynamicznej.

Jednak nadal działa, nawet jeśli zmienisz nazwy kolumn bez informowania APEX, na przykład przez zewnętrzne przekazanie PL/SQL Function Body w rzeczywistą funkcję.

Opcja 2:Użyj niestandardowych nagłówków kolumn

Trochę ukryty, ale jest też opcja całkowicie niestandardowych nagłówków kolumn. Jest prawie na końcu atrybutów stronę regionu raportu.

Tutaj możesz również podać funkcję, która zwraca nazwy Twoich kolumn. Uważaj, aby ta funkcja nie zwracała zapytania SQL, które samo zwraca nazwy kolumn, ale zamiast tego zwraca nazwy kolumn oddzielone dwukropkiem .

Dzięki tej metodzie łatwiej jest zidentyfikować i odnieść się do kolumn w projektancie:

Opcja 3:obie

Wyłącz Ogólne nazwy kolumn, aby zapytanie zwracało nazwy kolumn, które można łatwo zidentyfikować i do których można się odwoływać, oraz użyj custom column headings funkcja zwraca szczegółowe nazwy dla użytkowników.

Moja osobista opinia

Używam trzeciej opcji w aplikacji produkcyjnej, w której ludzie mogą samodzielnie zmieniać ilość i kolejność kolumn za pomocą elementów wahadłowych na stronie raportu. Zajęło to trochę czasu, ale teraz działa jak urok, jak jakiś dynamiczny PIVOT bez PIVOT .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EM12c umożliwia teraz DB12c dla repozytoriów

  2. Jak uzyskać nazwę dnia z daty w Oracle?

  3. Przykład tabeli zewnętrznej Oracle

  4. Oracle binarne typy danych

  5. Wstawianie obrazu z Oracle do SQL Server