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

динамично предаване на името на таблицата в Oracle for цикъл

Можете да използвате курсор от тип REF CURSOR. От Oracle Doc:(съдържа и свързвания - не сте ги поискали...)

CREATE OR REPLACE PROCEDURE query_invoice(
       month VARCHAR2, 
       year VARCHAR2) IS
    TYPE cur_typ IS REF CURSOR;
    c cur_typ;
    query_str VARCHAR2(200);
    inv_num NUMBER;
    inv_cust VARCHAR2(20);
    inv_amt NUMBER;
BEGIN
    query_str := 'SELECT num, cust, amt FROM inv_' || month ||'_'|| year 
      || ' WHERE invnum = :id';
    OPEN c FOR query_str USING inv_num;
    LOOP
        FETCH c INTO inv_num, inv_cust, inv_amt;
        EXIT WHEN c%NOTFOUND;
        -- process row here
    END LOOP;
    CLOSE c;
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. TNSPING ОК, но sqlplus дава ORA-12154?

  2. Как работите върху пакетите на Oracle в среда за сътрудничество, контролирана от версии?

  3. Oracle SQL пълна йерархия, дадена на всеки възел като вход

  4. Oracle:годината трябва да е между -4713 и +9999, а не 0

  5. избиране на запис от oracle