Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да се обърнете към колона по ID или номер на индекс

Трябва да използвате някаква форма на динамичен SQL. Ето бърз пример:

Той изгражда SQL израза, който ще избере колоните, разделени с '/', от таблицата, която искате. След това използва динамичен SQL, за да изпълни този 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. CachedRowSet по-бавен от ResultSet?

  2. Критерии за хибернация за получаване на записи, които имат година 2012

  3. Oracle 11g - най-ефективният начин за вмъкване на множество редове

  4. Как да ограничим таблица на база данни, така че само един ред да има определена стойност в колона?

  5. Трансформация на таблица / анализ на поле в PL/SQL