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. SQLの複数の行への複数の挿入

    2. 相関サブクエリでのMySQLLIMIT

    3. SYSDATETIME()SQL Server(T-SQL)の例

    4. Postgresql forC++でステートメントとバインドパラメータを準備する方法