DECLARE
vl_str_sql VARCHAR2(255);
vl_cnt VARCHAR2(20);
BEGIN
vl_str_sql := 'SELECT count(*) FROM emp';
EXECUTE IMMEDIATE vl_str_sql INTO vl_cnt;
dbms_output.put_line(vl_cnt);
END;
DECLARE
TYPE CUR_TYP IS REF CURSOR;
c_cursor CUR_TYPE;
emp_rec emp%ROWTYPE;
v_query VARCHAR2(255);
BEGIN
v_query := 'SELECT * FROM emp';
OPEN c_cursor FOR v_query;
LOOP
FETCH c_cursor INTO emp_rec;
EXIT WHEN c_cursor%NOTFOUND;
dbms_output.put_line(emp_rec.empno);
END LOOP;
CLOSE c_cursor;
END;
DECLARE
TYPE cur_typ IS REF CURSOR;
c_cursor CUR_TYPE;
emp_rec emp%ROWTYPE;
v_query VARCHAR2(255);
vl_manager VARCHAR2(3) := 'MANAGER';
BEGIN
v_query := 'SELECT * FROM emp WHERE job = :job';
OPEN c_cursor FOR v_query USING vl_manager;
LOOP
FETCH c_cursor INTO emp_rec;
EXIT WHEN c_cursor%NOTFOUND;
dbms_output.put_line(emp_rec.job);
END LOOP;
CLOSE c_cursor;
END;
vl_str_sql VARCHAR2(255);
vl_cnt VARCHAR2(20);
BEGIN
vl_str_sql := 'SELECT count(*) FROM emp';
EXECUTE IMMEDIATE vl_str_sql INTO vl_cnt;
dbms_output.put_line(vl_cnt);
END;
DECLARE
TYPE CUR_TYP IS REF CURSOR;
c_cursor CUR_TYPE;
emp_rec emp%ROWTYPE;
v_query VARCHAR2(255);
BEGIN
v_query := 'SELECT * FROM emp';
OPEN c_cursor FOR v_query;
LOOP
FETCH c_cursor INTO emp_rec;
EXIT WHEN c_cursor%NOTFOUND;
dbms_output.put_line(emp_rec.empno);
END LOOP;
CLOSE c_cursor;
END;
DECLARE
TYPE cur_typ IS REF CURSOR;
c_cursor CUR_TYPE;
emp_rec emp%ROWTYPE;
v_query VARCHAR2(255);
vl_manager VARCHAR2(3) := 'MANAGER';
BEGIN
v_query := 'SELECT * FROM emp WHERE job = :job';
OPEN c_cursor FOR v_query USING vl_manager;
LOOP
FETCH c_cursor INTO emp_rec;
EXIT WHEN c_cursor%NOTFOUND;
dbms_output.put_line(emp_rec.job);
END LOOP;
CLOSE c_cursor;
END;