pl/sql学习2——pl/sql记录

记录:针对一条数据,可以有多列,调用记录名.成员名

CREATE OR REPLACE

PROCEDURE PR_RECORD_VARIABLE
AS
BEGIN
  DECLARE/*pl/sql记录*/
  type V_RECORD IS  RECORD(
    no DEPT.DEPTNO%type,
    name DEPT.DNAME%type,
    LOCC DEPT.LOC%type 
  );
  V_DEPT_RECORD V_RECORD;
  V_DEPT_RECORD1 DEPT%ROWTYPE;--可以用表来定义
  CURSOR DEPT_CUR
  IS --声明游标
    SELECT deptno,dname,loc FROM dept;
BEGIN
  SELECT DEPTNO,DNAME,LOC INTO V_DEPT_RECORD FROM DEPT WHERE rownum=1;
  DBMS_OUTPUT.PUT_LINE('编码:'||V_DEPT_RECORD.no||';名称:'||V_DEPT_RECORD.name||';地址:'||V_DEPT_RECORD.locc);
  SELECT DEPTNO,DNAME,LOC INTO V_DEPT_RECORD1 FROM DEPT WHERE rownum=1;
  DBMS_OUTPUT.PUT_LINE('编码:'||V_DEPT_RECORD1.DEPTNO||';名称:'||V_DEPT_RECORD1.DNAME||';地址:'||V_DEPT_RECORD1.LOC);
  OPEN dept_cur;
  LOOP
    FETCH DEPT_CUR INTO V_DEPT_RECORD; --将游标的内容插入到游标记录变量中
    DBMS_OUTPUT.PUT_LINE('编码:'||V_DEPT_RECORD.no||';名称:'||V_DEPT_RECORD.name||';地址:'||V_DEPT_RECORD.locc);
    EXIT
  WHEN dept_cur%NOTFOUND;
  END LOOP;
  CLOSE dept_cur;
END;
END PR_RECORD_VARIABLE;

你可能感兴趣的:(pl/sql学习2——pl/sql记录)