v_emp_record.f_name就是在用游标中返回值啊
解决方案 »
- oracle上亿条记录大表delete
- Oracle数据库权限问题
- oracle 中新建database后,原来的那个database中的用户名密码无效
- oracle 设置check时出错 日期
- ORACLE, SYBASE ANYWHERE, SQL Server的比较
- 在ORACLE中怎樣將數據庫A中的表複製到數據庫B中?謝謝大家,指點一下!
- 数据库所用内存应该设计为电脑内存的多少比较合适?特别是SGA..
- Asp 执行存储过程
- select 学号 from 表 where 学号....
- 关于oracle数据库select * for update 报错
- PL/SQL登录远程数据库
- 菜鸟问题,如何自动带出最后三次保存的值
就是将游标中的记录赋予v_emp_record --也就是提取游标的返回值。游标返回可能包含多条记录,需要用loop的方式将多条记录一条一条的返回给v_emp_record
謝謝!
但 有用 與 沒有用 RETURN EMP_RECORD_TYPE,結果一樣,
那這 用 RETURN EMP_RECORD_TYPE 有何好處?我想,用了 RETURN EMP_RECORD_TYPE,應該有特定的用途 才對!
FETCH c3 INTO v_emp_record;
不用的话fetch的时候返回的是多列,cursor有几列就返回几个值
FETCH c3 INTO v_first_name, v_hire_date;
謝謝!不過,我試過 似乎 有沒有 RETURN 都可以RUN???DECLARE
TYPE XX IS RECORD(
f_name hr.employees.first_name%TYPE,
h_date hr.employees.hire_date%TYPE);
v_XX XX;
v_f_name hr.employees.first_name%TYPE;
v_h_date hr.employees.hire_date%TYPE;
CURSOR c2(p_deptid NUMBER, p_jobid VARCHAR2) --声明游标,有参数,没有返回值
RETURN XX
IS
SELECT first_name, hire_date FROM hr.employees
WHERE department_id = p_deptid AND job_id = p_jobid;
BEGIN
OPEN c2(90, 'AD_VP'); --打开游标,传递参数值
LOOP
FETCH c2 INTO v_XX.f_name,v_XX.h_date; --提取游标
IF c2%FOUND THEN
--DBMS_OUTPUT.PUT_LINE(v_f_name||'的雇佣日期是'||v_h_date);
DBMS_OUTPUT.PUT_LINE(v_XX.f_name||'的雇佣日期是'||v_XX.h_date);
ELSE
DBMS_OUTPUT.PUT_LINE('已经处理完结果集了');
EXIT;
END IF;
END LOOP;
CLOSE c2; --关闭游标
END;
只是不知若都可以 為何還要 多一個RETURN