欢迎投稿

今日深度:

PLSQL 定义record记录,plsqlrecord记录

PLSQL 定义record记录,plsqlrecord记录


1. PLSQL基本使用

注:1. 三段 declare 

            Begin

                Exception

                  End;

2. 声明:emp.ename%type; 和字段的属性相同。

3. begin: select 带查询自动 into 存储变量。

4. 条件语句:

1if then

                语句;

         End if

  2When then

语句;

 

declare

v_ename emp.ename%type;

e_meet_scott exception;

begin

  select ename into v_ename from emp where emp.empno=7788;

  dbms_output.put_line('WHO?||v_ename');

  if v_ename='SCOTT'then

    raise e_meet_scott;

  endif;

exception

    when e_meet_scott then

      dbms_output.put_line('AAAA,scott@@@@@');

end;

2. 记录

2.1自定义记录:

注:1.自定义结构体:

        Declare 结构体名字 is record(

        字段1

        字段2);

        实例化结构体  结构体;

    2. ‘’||’’  连接字符串。

declare

type emp_basic_record isrecord(

     empno emp.empno%type,

     empname emp.ename%type,

     empjob emp.job%type

     );

 emp_basic_info emp_basic_record;

begin

  select empno,ename,job into emp_basic_info from emp

  where empno=7788;

  dbms_output.put_line('姓名:'|| emp_basic_info.empname);

end;

2.2 rowtype记录

注:1,使用rowtype创建记录。记录的字段名和原有的字段相同。

2. 创建多个rowtype,可以方便同时处理不同的记录

declare

emp_detail_info emp%rowtype;

begin

 

  select empno,ename,job into emp_detail_info.empno

  ,emp_detail_info.ename,emp_detail_info.job from emp

  where empno=7788;

  dbms_output.put_line('姓名'||emp_detail_info.ename);

 


PLSQL中,定义一个RECORD类型变量r1 table1%rowtype,怎将table1表中的一条记录放到r1中,并且在r1中得

select table1.clo1,table1.clo2,table1.clo3 into r1.clo1,r1.clo2,r1.clo3 from table1
变量r1 是一个记录类型哦,r1 的结构和表table1 的结构完全一样,记录类型一次只能接受一条数据哦, 你再运行的时候添加一个限制条件,保证查出来的记录数只有一条,大概就这样了,不懂再问
 

汇编 记录record 的使用 教

当处理的数据项较少,并且每个数据项用几位二进制就可以表示时,就可以用record来定义,将这些数据项放在一个字节或者两个字节中。
比如student record name:4,sex:1
name宽度为4个二进制位,sex为1个,总宽度小于等于8,汇编程序将用1个字节表示记录。若总宽度超过8但是小于等于16,就用两个字节表示。

如果想找到其中的某个字段的具体值,则会用到移位值运算和屏蔽运算。

比如这样定义数据段:
data segment
s record a:4,b:1
s1 s <3,1>
s2 s <10,0>
data ends
那么内存中是这样分配的:
ds:0 07——这里的07,就是s1的值
ds:1 14——这里的14,就是s2的值。

mov bl,s1 ;取s1
mov al,mask a ;屏蔽运算,al中存放的就是字段a的屏蔽码,即该字段各位均为1,其他各位均为0,即1EH
and bl,al ;s1的字段a的值就在bl中存放了,但是还不是3,因为它右边还有字段b的一个位。于是还要进行移位运算。
mov cl,a ;a字段在记录中的位置,即需要移动的位数。
shr bl,cl ;此时bl中的值为s1中a字段的值——3

可以用下面这个程序分析一下,汇编连接后,用debug运行调试一下。
assume cs:code,ds:data
data segment
s record a:4,b:1
s1 s <3,1>
s2 s <10,0>
data ends
code segment
start: mov ax,data
mov ds,ax
mov al,mask a
mov bl,s1
and bl,al
mov cl,a
shr bl,cl
mov ax,4c00h
int 21h
code ends
end start

建议看看汇编语言教材中相关的内容。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2092.html NewsArticle PLSQL 定义record记录,plsqlrecord记录 1. PLSQL基本使用 注: 1. 三段 declare Begin Exception End; 2. 声明: emp.ename%type; 和字段的属性相同。 3. begin: select 带查询自动 into 存储变量。 4. 条件语句:...
相关文章
    暂无相关文章
评论暂时关闭