set serveroutput on; 开启显示
begin
end;
/ 开始结束;
declare 申明变量,变量名 默认 V_ 开头
v_num number := 0;
赋值;
exception
when others then
dbms_output.put_line('error'); 获取任何异常并处理;
变量类型:
binary_integer 整数,一般用来计数
number
char
varchar2
date
long
boolean --》 可以取 true,false,null
constant 相当于java里面的 final
v_pi constant number(3,2)
not null 非空
v_name varchar2(20)not null :='MyName';
|| 连接符
dbms_output.put_line('v_temp value: ' || v_temp);
dbms_output.put_line();不能输出boolean值
-- 为PLSQL里面的注释
%type
declare
v_empno emp.empno%type
v_empno1 v_empno%type
begin
dbms_output.put_line('test');
end;(type可以根据表类型,动态改变,相当于一个属性)
table 变量类型(相当于数组)
type type_table_emp_empno is table of emp.empno%type index by binary_integer;(type 定义一个类
型)
v_empnos type_table_emo_empno;
record变量类型(视频里面说像java里面的类,但个人认为就是C语言里面的结构体)
declare
type type_record_dept is record
(
deptno dept.deptno%type,
dname dept.dname%type
);
v_temp type_record_dept;
rowtype属性
v_temp dept%rowtype;将dept表的类型全对应保存到v_temp中,v_temp即为 record 类型
plsql里面 select 有且只有一条记录
select ename,sala into v_ename,v_sal from emp where e,pno = 7369;
select * into v_temp(rowtype) from emp where e,pno =
insert value里面可以使用申明的变量
commit;提交事物。
sql%rowcount 影响了多少行 sql 刚刚执行的sql语句
ddl语句执行需要在前加入 execute immediate
begin
execute immediate ‘create table T (nnn varchar2(20) default ''aaa'')’;
end;
if语句
declare
v_sal emp.sal%type;
begin
select sal into v_sal from emp
where empno = 7369;
if(v_sal < 1200) then
dbms_output.put_line('low');
elseif(v_sal < 2000) then
dbms_output.put_line('middle');
else
dbms_output.put_line('high');
end if;
end;
循环
1.
declare
i binary_integer := 1;
begin
loop
dbms_output.put_line(i);
i := i + 1;
exit when ( i >= 11);
end loop;
end;
2.
declare
i binary_integer := 1;
begin
while j < 11 loop
dbms_output.put_line(i);
i := i + 1;
end loop;
end;
3.
declare
i binary_integer := 1;
begin
for k in 1..10 loop
dbms_output.put_line(i);
end loop;
for k in reverse 1..10 loop(逆序10--1)
dbms_output.put_line(i);
end loop;
end;
异常:
exception
when too_many_rows then
dbms_output.put_line('select 返回记录行数过多');
when no_date_found then
dbms_output.put_line('select 没有返回记录');
when others then
dbms_output.put_line('error');
create table errorlog
(
id number primary key,
errcode number,
errmsg varchar2(1024),
errdate date
)
SQLCODE 错误代码
SQKERRM 错误信息 :关键字
至此 在有其他语言的基础下,已经可以掌握plsql语法
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28889722/viewspace-1290011/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28889722/viewspace-1290011/