--oracle内部编程语言 pl语言(过程语言)补充sql语言
分支、条件判断、循环
分四块:
1.DECLARE做变量声明(可选)
2.BEGIN开始(必须有)
3.EXCEPTION(catch到时执行)
4.END;(必须有)
e.g.
begin
dbms_output.put_line('helloworld!');
end;
标准命令行输出,相当于System.out.println('xxx');
要SET SERVEROUTPUT ON才能看见输出,默认是off的
--DECLARE声明变量
变量名,默认以v_开头
赋值,:=,(Pascal语法)
不能使用保留字|第一个字符必须是字母|最多包含30个字符|不能与表或列同名|一行一变量
变量类型(7种):binary_interger(用来计数而不是表示字段类型,可以提高效率,for i=0,...,还有数组下标)
number,char,varchar2,date,long,boolean(要给初值,否则为空)
constant相当于final,常量
boolean类型无法打印
变量用来存储某张表某个字段的值,可以跟着这个字段的数据类型走,用 tablexx.字段xx%type,也可以 变量%type
--复合变量
table相当于数组,record相当于类
table:
先用type重新定义类型,index by binary_interger下标,下标值可以取负
type
record:
type type_record_xx is record
(
字段1 tablexx.字段1%type,
字段2 tablexx.字段2%type
);
使用tablexx%rowtype做整体声明
--PLSQL中select用法
PLSQL中使用select应当返回有且只有一条数据
select中应当有into
--PLSQL中delete、update、insert直接用即可,变量,需要commit
sql%rowcount,刚刚执行的SQL有多少记录被影响到
--ddl语句
加上execute immediate'create tablexx...'
单引号中间用两个单引号代表一个单引号
--if语句(Pascal语法)
if(...)then
elseif(...)then
else
end if;
--loop语句
loop
...
exit when...;
end loop;
--for语句
for k in 1...10 loop
for k in reverse 1..10 loop
--dcl语句
--错误处理
exception
when...(如 too_many_rows no_data_found)then
when others../then