现在的位置: 首页 > 综合 > 正文

Oracle 记录类型和%TYPE

2013年10月11日 ⁄ 综合 ⁄ 共 1499字 ⁄ 字号 评论关闭

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

Connected as scott

 

SQL> set serveroutput on;

SQL> declare            /*定义一个记录类型*/

  2 type  BookRecord
is record(

  3 bookNo  integer,

  4 bookName varchar2(40),

  5 isbn varchar2(20),

  6 authorName varchar2(20),

  7 pressName bookName%type,

  8 status char(1),

  9 bookPrice float

 10 );

 11 Book1 BookRecord;/*初始化一个记录变量*/

      /*建立一个过程,将记录里面的信息全部输出*/

 12 procedure printBookRecord(BookA in BookRecord) is

 13 begin

 14 

 15        dbms_output.enable;

 16        dbms_output.put('序号:'||BookA.bookNo);

 17 

 18        dbms_output.put('书名:'||BookA.bookName);

 19        dbms_output.put('ISBN:'||BookA.isbn);

 20        dbms_output.put('作者:'||BookA.authorName);

 21       dbms_output.put('出版社:'||BookA.pressName);

 22        

 23        if BookA.status='Y' then

 24            dbms_output.put('    
库存情况:目前有货');

 25        else

 26            dbms_output.put('    
库存情况:目前没货');

 27        end if;/*每个if都有一个end
if
与之相对应*/

 28 

 29            dbms_output.put('    
书价:'||BookA.bookPrice);

 30            dbms_output.put_line('    
一条图书信息打印完毕');

 31 end printBookRecord;/*过程定义结束也得用end*/

      /*为记录变量赋值*/

 32 begin

 33      Book1.bookNo:=102;

 34      Book1.bookName:='爱国者';

 35      Book1.isbn:='7-4556-8795-8';

 36      Book1.authorName:='小明';

 37      Book1.pressName:='高教出版社';

 38      Book1.status:='Y';

 39      Book1.bookPrice:=50.25;

 40      /*调用过程输出记录变量的值*/

 41      printBookRecord(Book1);

 42 end;

 43 /

 

序号:102书名:爱国者ISBN:7-4556-8795-8作者:小明出版社:高教出版社    
库存情况:目前有货    
书价:50.25    
一条图书信息打印完毕

 

PL/SQL procedure successfully completed


--the  end--

抱歉!评论已关闭.