Trong đoạn script dưới đây, dùng command execute immediate để thực thi một dynamic query và đưa kết quả trả về vào 1 variable có tên là n_n với kiểu dữ liệu là number. Sau đó in kết quả ra màn hình.
declare n_n number; begin execute immediate 'select account_list_id from account_list where account_list_id=150' into n_n; dbms_output.put_line(n_n); end;
Và đây là 1 ví dụ khác, truyền tham số vào dynamic query trong Oracle. Ở đây dùng using và truyền vào 2 tham số:
l_statement := 'BEGIN' ||' INSERT INTO book_reservations ( ||' res_date ||' ,res_book_id ||' ) ||' VALUES (:p_date' ||' ,:p_book_id' ||' );' ||'END;' ; EXECUTE IMMEDIATE l_statement USING IN SYSDATE ,IN p_requested_book_id ;Tiếp theo, là 1 ví dụ về dùng dynamic cursor
DECLARE c_c sys_refcursor; str VARCHAR2(1000); Type t_t IS TABLE OF account_list%RowType; t t_t; BEGIN str := 'select * from account_list where rownum < 4'; OPEN c_c FOR str; FETCH c_c bulk collect INTO t; FOR i IN 1..t.count LOOP dbms_output.put_line(t(i).account_list_id); END LOOP; END;
0 comments:
Post a Comment