sql >> Database teknologi >  >> RDS >> Oracle

dynamisk videregive tabelnavn i oracle for loop

Du kan bruge en markør af typen REF CURSOR. Fra Oracle Doc:(indeholder også binds - du har ikke bedt om dem...)

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. Hvilken af ​​disse 2 databaseopsætninger skal jeg vælge?

  2. Er der en grænse for PHP Variable Size?

  3. er MySql god til store databaser?

  4. Undslipper en skråstreg i et SQL-navn? Det kan undslippes, men SQL mener, at det er flere kolonner