У меня вопрос о том, где переменные связывания могут использоваться в динамическом выражении SQL в PL/SQL.
Например, я знаю, что это действительно:
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;
/
Мне было интересно, можете ли вы использовать переменные связывания в инструкции select, подобной этой
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;
/
Примечание. Я использовал инструкцию SELECT INTO в качестве моей динамической строки и использовал переменную связывания в предложении INTO.
В настоящее время я путешествую прямо сейчас и не буду иметь доступ к моему компьютеру дома в течение нескольких дней, но это немного потакало мне. Пробовал читать ссылку PL/SQL, но у них нет примера выбора, подобного этому.
Спасибо