马士兵PLSQL笔记

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值