sql >> データベース >  >> RDS >> Oracle

APEX ORACLEで複数選択リストを作成して使用するにはどうすればよいですか?

    シャトルアイテムがあります 。左側には、すべての従業員のリストが表示されます。アイテムボタンを使用すると、すべて(または一部のみ)をアイテムの右側に移動できます。ページを送信すると、従業員IDのリストが、コロンで区切られた値の形式でテーブルの列に保存されます。たとえば、

    6547:8879:5587:9987
    

    これはそれを行う簡単な方法です。ただし、実際に行う必要がある場合 それらの値を持つ何か、あなたはそれらを行に分割しなければなりません。しかし、問題はありません。クエリは次のとおりです:

    SQL> with emps (shuttle_item) as
      2    (select '6547:8879:5587:9987' from dual)
      3  select regexp_substr(shuttle_item, '[^:]+', 1, level) one_item
      4  from emps
      5  connect by level <= regexp_count(shuttle_item, ':') + 1;
    
    ONE_ITEM
    ---------------------------------------------------------------------
    6547
    8879
    5587
    9987
    
    SQL>
    

    または、すべての従業員を表示し、すべての行の先頭にチェックボックスがある表形式のフォームを作成することもできます。次に、ループ内で、選択した値を一時テーブルに格納するプロセスを作成します。 あなたが言った。例:

    -- F01 = row selector. If you check 1st and 3rd row, f01.count = 2 (2 rows checked)
    --       f01(1) = 1 (row #1), f01(2) = 3 (row #3)
    -- F02 = EMP_ID. f02(1) = EMP_ID that belongs to employee in 1st row, 
    --       f02(3) = EMP_ID that belongs to emplyee in 3rd row
    declare
      l_id number;
    begin
      for j in 1 .. apex_application.g_f01.count
      loop
        l_id := apex_application.g_f02(apex_application.g_f01(j));
    
        insert into temp_table (emp_id) values (l_id);
      end loop;
    end;
    


    1. 開発データベースと本番データベースを同期する方法

    2. 別のテーブルから選択してMySQLを更新

    3. 見出しなしでExcelでクエリ-Oracle

    4. MariaDBでのSUBDATE()のしくみ