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

Jak odwoływać się do kolumny według identyfikatora lub numeru indeksu?

Musisz użyć jakiejś formy dynamicznego SQL. Oto krótki przykład:

Buduje instrukcję SQL, która wybierze kolumny oddzielone '/' z żądanej tabeli. Następnie używa dynamicznego SQL do uruchomienia tej instrukcji SQL.

DECLARE
  p_table_name VARCHAR2(30) := 'DBA_OBJECTS';
  l_sql VARCHAR2(32000);

  TYPE varchar2tab IS TABLE OF VARCHAR2(32000);
  l_array varchar2tab;

BEGIN
  SELECT 'SELECT ' || listagg(column_name,' ||''/''||') within group ( order by column_id ) || ' FROM ' || owner || '.' || table_name || ' WHERE ROWNUM <= 100'
  INTO l_sql
  FROM dba_tab_columns
  where table_Name = 'DBA_OBJECTS'
  group by owner, table_Name;

  EXECUTE IMMEDIATE l_sql BULK COLLECT INTO l_array;

  FOR i in l_array.first .. l_array.last LOOP
    dbms_output.put_line(l_array(i));
  END LOOP;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy operator IN może używać symboli wieloznacznych LIKE (%) w Oracle?

  2. Jak przeszukać pole, gdy pojawi się błąd ORA-19011?

  3. Oracle - Ścieżka audytu dla konkretnego użytkownika

  4. Jak wyeksportować wyniki zapytania do pliku CSV w SQLcl (Oracle)

  5. ORA-01036:nieprawidłowa nazwa/numer zmiennej podczas uruchamiania zapytania przez C#