当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle复合变量:RECORD(三)
发布时间:2010/10/25 9:42:38 来源:www.xue.net 编辑:城市总裁吧
      例子:数据集中的记录和记录类型中的数据关系。

  DECLARE

  Type MyRecType Is  Record

  (

  RENO  EMPA.EMPNO%Type,

  RENAME   EMPA.ENAME%Type,

  RJOB   EMPA.JOB%Type

  );

  EmpRec  MyRecType;

  vJob  EMPA.JOB%Type;

  Begin

  Select   EMPNO, ENAME, JOB  InTo  EmpRec  From empa Where empa.EMPNO = '7369';

  DBMS_OUTPUT.PUT_LINE('MyRecType.RJOB: '||EmpRec.RJOB);

  EmpRec.RJOB  := '修改值后'  ;

  DBMS_OUTPUT.PUT_LINE('MyRecType.RJOB: '||EmpRec.RJOB);

  Select JOB  InTo vJob  from empa  Where empa.EMPNO = EmpRec.RENO;

  DBMS_OUTPUT.PUT_LINE('EMPA.JOB: '||vJob);

  End;

  /

  四,使用记录向表中插入数据?

  根据表结构合理安排记录字段。比如主外键。

  如果用记录(RECORD)插入数据,那么只能使用记录成员;

  如果用%ROWTYPE插入数据,可以直接使用%ROWTYPE。

  例子:使用记录成员向表中插入数据

  DECLARE

  Type MyRecType Is  Record

  (

  RENO  EMPA.EMPNO%Type,

  RENAME   VARCHAR2(10),

  RJOB   EMPA.JOB%Type

  );

  EmpRec MyRecType;

  Begin

  Select   EMPNO, ENAME, JOB  InTo  EmpRec  From empa Where empa.EMPNO = '7369';

  DBMS_OUTPUT.PUT_LINE(EmpRec.RENO||'  '||EmpRec.RENAME||'  '||EmpRec.RJOB);

  EmpRec.RENO  := 1001;

  EmpRec.RENAME := '杰克';

  EmpRec.RJOB  := '办事员';

  Insert InTo  empa(EMPNO,ENAME,JOB)  Values(EmpRec.RENO, EmpRec.RENAME,EmpRec.RJOB);

  Select  EMPNO, ENAME, JOB  InTo  EmpRec  From empa Where empa.EMPNO = '1001';

  DBMS_OUTPUT.PUT_LINE(EmpRec.RENO||'  '||EmpRec.RENAME||'  '||EmpRec.RJOB);

  End;

  五,使用记录更新数据?

  如果用记录(RECORD)更新数据,那么只能使用记录成员;

  如果用%ROWTYPE更新数据,可以直接使用%ROWTYPE。

  例子:使用%ROWTYPE向表中插入数据

  DECLARE

  vEmp empa%RowType;

  Begin

  Select  *  InTo  vEmp  From empa Where empa.EMPNO = '7369';

  UpDate empa Set ROW = vEmp Where EMPNO = 1001;

  End;

  六,使用记录删除数据?

  删除记录时,只能在delete语句的where子句中使用记录成员。

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved