oracle10g PLSQL基础

    技术2024-08-21  62

    plsql变量命名:由字符开头,可以包含数字、下划线、¥、#等,变量长度1-30,大小写不区分,变量名不能是系统关键字。

    if语句写法:

    例子1:

    declarex varchar2(10);beginx:='this is..';dbms_output.put_line('x的值为:'||x);end;

    例子2:

    declarea number;b varchar(20);begina:=2;if a=1 thenb:='a';elsif a=2 thenb:='b';elseb:='c';end if;dbms_output.put_line('b的值是:'||b);end;

     

    例子3:

    declarea number;b varchar(20);begina:=2;casewhen a=1 then b:='a';when a=2 then b:='b';when a=3 then b:='c';elseb:='others';end case;dbms_output.put_line('b的值是:'||b);end;

     

    循环:注意不要让过程有死循环,要做计数器。

    例子1:

    declarex number;beginx:=0;loopx:=x+1;if x>=3 thenexit;end if;dbms_output.put_line('内'||x);end loop;dbms_output.put_line('外:x='||x);end;

    例子2:loop

    declarex number;beginx:=0;loopx:=x+1;exit when x>3;dbms_output.put_line('内'||x);end loop;dbms_output.put_line('外:x='||x);end;

    例子2:while

    declarex number;beginx:=0;while x<=3 loopx:=x+1;dbms_output.put_line('内:x='||x);end loop;dbms_output.put_line('外:x='||x);end;

    例子3:

    beginfor i in 1..5 loopdbms_output.put_line('i='||i);end loop;dbms_output.put_line('end of for loop');end;

    例子4:从大到小循环reverse

    beginfor i in reverse 1..5 loopdbms_output.put_line('i='||i);end loop;dbms_output.put_line('end of for loop');end;

    例子5:特殊的一种循环

    declarex number;beginx:=0;<<repeat_loop>>x:=x+1;dbms_output.put_line(x);if x<3 thengoto repeat_loop;end if;end;

    oracle PLSQL 异常通常有两种,一种是系统的,还有一种是自定义的.

     

    定义记录使用方法---- 

    复合类型的变量使用例子:declaretype myrecord is recore(id varchar2(10),name varchar2(10));real_record myrecord;beginselect eid,ename into real_record from emp where eid='001';dbms_output.put_line(real_record.id||','real_record.name);end;

    把字段与表中字段对应起来:declaretype myrecord is recore(id emp.eid%type,  ------->与表中字段对应起来了。name varchar2(10));real_record myrecord;beginselect eid,ename into real_record from emp where eid='001';dbms_output.put_line(real_record.id||','real_record.name);end;

    所有的字段都对应起来;declaremyrec emp%rowtype;beginselect * into myrec from emp where eid = '001'; --->应该使用所有的字段dbms_output.put_line(myrec.empno||','||myrec.ename);-->可以打印出更多的变量,这里的名称必须和表的名字是相同的。end;/

    创建一个只读视图:create or replace view v_readasselect eid,ename from empwith read only  ---->规定了只能读取,不能插入。如果视图加了聚合函数那么默认的为只能读取。

     

     

    最新回复(0)