Tôi có một câu hỏi liên quan đến các biến liên kết có thể được sử dụng trong câu lệnh SQL động trong PL/SQL.Sử dụng các biến liên kết với mệnh đề SELECT INTO động trong PL/SQL
Ví dụ, tôi biết rằng đây là hợp lệ:
CREATE OR REPLACE FUNCTION get_num_of_employees (p_loc VARCHAR2, p_job VARCHAR2)
RETURN NUMBER
IS
v_query_str VARCHAR2(1000);
v_num_of_employees NUMBER;
BEGIN
v_query_str := 'SELECT COUNT(*) FROM emp_'
|| p_loc
|| ' WHERE job = :bind_job';
EXECUTE IMMEDIATE v_query_str
INTO v_num_of_employees
USING p_job;
RETURN v_num_of_employees;
END;
/
tôi đã tự hỏi nếu bạn có thể sử dụng một biến ràng buộc trong một tuyên bố chọn như thế này
CREATE OR REPLACE FUNCTION get_num_of_employees (p_loc VARCHAR2, p_job VARCHAR2)
RETURN NUMBER
IS
v_query_str VARCHAR2(1000);
v_num_of_employees NUMBER;
BEGIN
v_query_str := 'SELECT COUNT(*) INTO :into_bind FROM emp_'
|| p_loc
|| ' WHERE job = :bind_job';
EXECUTE IMMEDIATE v_query_str
USING out v_num_of_employees, p_job;
RETURN v_num_of_employees;
END;
/
Lưu ý tôi đã sử dụng một SELECT INTO tuyên bố như chuỗi dyamic của tôi và sử dụng một biến liên kết trong mệnh đề INTO.
Tôi hiện đang đi du lịch và sẽ không có quyền truy cập vào máy tính của mình ở nhà trong một vài ngày, nhưng điều này đã khiến tôi lo lắng một chút. Đã thử đọc tham chiếu PL/SQL nhưng chúng không có ví dụ về lựa chọn như thế này.
Cảm ơn
Liên quan: http://stackoverflow.com/q/25489002/1461424 – Krumia