每种数据库都有自己特有的语言,Oracle下面就是PL_SQL了。它相对于SQL语言来说,提供了分支和循环,可以完成更多的工作。
PL-SQL:---带选择过程的SQL语句。
各个数据库都有自己的类似语言。PL_SQL是Oracle数据库的。
SQL> set serveroutput on;输出到服务器命令行端口,默认是off。
SQL> declare ---变量声明语句块
v_name varchar2(20); ---每行只能声明一个变量。
begin ---开始执行语句块
v_name := 'myname';
dbms_output.put_line(v_name); ---输出语句。
exception ---异常处理语句
when others then
dbms_output.put_line('error');
end; ---语句执行结束符
常用变量类型:
binary_integer:整数,主要用来计数而不是用来表示字段类型。
number:数字类型
char:定长字符串
varchar2:变长字符串
date:日期
long:长字符串,最长2GB
boolean:布尔类型。取值(true,false,null)最好给初值。
--boolean类型不能打印出来。
字符串连接符:||
注释一行:--
注释多行:和Java一样
把程序变量类型和表的字段类型链接起来:
--变量声明,使用%type属性
declare
v_empno number(4);
v_empno2 emp.empno%type;
v_empno3 v_empno2%type;
begin
dbms.output.put_line('Test');
end;
--Table变量类型
declare
type type_table_emp_empno is table of emp.empno%type index by binary_integer;
---声明一个新的类型(table相当于数组类型)
v_empnos type_table_emp_empno; ---用定义的类型声明一个变量。
begin
v_empnos(0) := 7369;
v_empnos(1) := 7839;
v_empnos(-1):= 9999; ---数组下标可正可负。
end;
--Record变量类型:相当于Java里面的类。
declare
type type_record_dept is record ---定义新的变量类型
(
deptno dept.deptno%type,
dname dept.dname%type,
loc dept.loc%type
);
v_temp tpye_record_dept;
begin
v_temp.deptno:=50;
v_temp.dname :='aaa';
***
dbms.output.put_line(v_temp.deptno || ''||v_temp.dname);
end;
---使用%rowtype声明record变量---动态链接表的字段,程序不用再根据表的字段的更新而改变。易于维护。
declare
v_temp dept%rowtype;
begin
v_temp.deptno:=50;
v_temp.dname :='aaa';
***
dbms.output.put_line(v_temp.deptno || ''||v_temp.dname);
end;