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 ---->规定了只能读取,不能插入。如果视图加了聚合函数那么默认的为只能读取。