p :procedure l: language sql: 结构化查询语言
plsql 过程化语言: 在原来的基础上,新增 if ,循环语句;web
基本结构
declare --声明
声明变量
begin
plsql 过程化语言;
[exception
捕获异常,处理异常, others]
end;sql
声明变量
declare
– 声明普通的变量
i number;
j number default 200;
– 引用类型:该变量引入某表某列的类型
pname emp.ename%type;
pjob emp.job%type;
– 记录类型: 能够表示一行的类型
e_row emp%rowtype;
begin
– 赋值方法一
i := 100;
– 打印语句
dbms_output.put_line(i);
– 在oracle中只有数值才能够相加
– 字符串之间的链接:||
dbms_output.put_line(‘j=’||j);
– 经过SQL语句查询出来的值,赋值某变量
– 赋值方法二: select into ,只能处理返回一行记录,若是返回null行,或者多行都会报错
select ename into pname from emp where empno = 7788;
dbms_output.put_line(‘pname=’||pname);
select ename,job into pname,pjob from emp where empno = 7788;
dbms_output.put_line(‘pname=’||pname);
dbms_output.put_line(‘pjob=’||pjob);
– 查询的是全部的列,使用行类型接收全部的值
select * into e_row from emp where empno = 7788;
dbms_output.put_line(‘pname=’||e_row.ename);
dbms_output.put_line(‘pjob=’||e_row.job);
dbms_output.put_line(‘hiredate=’||e_row.hiredate);
exception
when others then
dbms_output.put_line(‘找不到记录’);
end;
4.if 语句
/*
if 条件 then
sql语句;
end if;oracle
if 条件 then sql语句; else sql语句; end if; if 条件 then sql语句; elsif 条件 then sql语句; elsif 条件 then sql语句; ...... else sql语句; end if;
*/
栗子:从控制台输入一个整数,打印正数,负数,零;
declare
–声明一个变量
i number;
begin
i := &请输入;
if i > 0 then
dbms_output.put_line(‘正数’);
elsif i < 0 then
dbms_output.put_line(‘负数’);
else
dbms_output.put_line(‘零’);
end if;
end;svg
循环
/*
for i in 集合|游标 loop
循环体;
end loop;
/
栗子:打印1-10全部的整数
declare
begin
for i in 1…10 loop
dbms_output.put_line(i);
end loop;
end;
/
int i = 0;
while(true){
输入i
if(i == 10){
break;
}
i ++;
}
声明变量i
loop
输出i
exit when 条件;
i++ ; – i:= i+1;
end loop;oop
/
栗子:打印1-10全部的整数
declare
i number default 1;
begin
loop
dbms_output.put_line(i);
exit when i = 10;
i := i + 1;
end loop;
end;
/
while(条件){
循环体;
i ++;
}
while 条件 loop
循环体;
i ++;
end loop;
*/
栗子:打印1-10全部的整数
declare
i number default 1;
begin
while i <= 10 loop
dbms_output.put_line(i);
i := i + 1;
end loop;
end;.net
Oracle 视图,索引code