plsql

pl/sql

程序化扩展语言

比如往表里面插入100万行数据就需要plsql

declare 变量声明

begin 程序主体

exception 例外处理

end; 程序结束


select 语句必须接into,且结果只允许返回单条记录,为空或为多条均报错

标识符就是一个对象,比如constant常量,variable变量,exception异常,cursor游标指针,可以存放多列的变量

program name:procedure,function,package,object type,trigger etc.

label reserved word


一个简单的plsql

create table emp as select * from scott.emp;

declare

ename varchar2(10):='KING';

begin

delete emp where ename=ename;

end;

select * from emp;

但会发现什么都没有,这就是plsql的一个特点:列名优先于变量名,它会先认为是列,所以全部删除了,而不是变量king


variable scope

get varscope.sql

declare

v_sal number(7,2):=80000; 7位数字,两位小数

v_comm number(7,2):=v_sal * 0.2

v_message varchar2(255):='No commission';

begin

 declare

 v_sal number(7,2):=60000;

 v_comm number(7,2):=0;

 v_total_comp number(7,2):=v_sal + v_common;

begin

 v_message:='From internal block'||v_message;

 dbms_output.put_line(v_total_comp);

 dbms_output.put_line(v_message); 输出字符类型的就用dbms_output.put_line()

 end;

 v_message:='From outer block'||v_message;

 dbms_output.put_line(v_message);

end;


还有一点需要注意的,下面语句中的commision_pct是奖金,奖金可能是null,所以我们要用到nvl

select avg(salary*nvl(commission_pct,0)) from hr.employees;


还有很多东西。。。在实际工作中,是开发人员应用的,dba用不到,慢慢再看吧。。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值