在学习编程语言的时候,特别是web相关的,大家一定会用到数据库,开始的时候也就是些增删改查,慢慢随着应用的增加,是不是想学习下数据库编程了呢?最近我也开始学oracle plsql编程了,现在就和大家分享下最基础的语句块的入门吧,也算是这么语言的HelloWorld。
使用的坏境:windows xp ,数据库oracle11g 工具 plsql developer
使用方案:oracle实例默认的scott方案,命令窗口方式学习,使用的表emp表
让我们来看看oracle plsql块的基本结构
- DECLARE
- /**
- 定义部分—常量,变量,复杂数据类型,游标等等
- */
- BEGIN
- /**
- 执行部分—plsql语句 sql语句 (这是不可缺少的部分,但是声明和例外处理却是可以省略的
- */
- END
- /**
- 例外处理部分—处理运行的错误
- */
让我们看看怎么输出个”Hello World!”吧
- --简单输出
- Begin
- --这是什么函数呢,dbms_output是oracle里的包名,put_line是过程名称
- --就好像我们其他语言中的内置函数啦 例如System.out.print();
- dbms_output.put_line('Hello World!');
- end;
在命令窗口最后要用个 /, 才能执行哦
看看执行结果:
- PL/SQL procedure successfully completed
怎么没有HelloWorld!啊,哎这破数据库,其实是你没有打开控制台输出哦
试试这一句:
- SQL> set serveroutput on;
再把代码放上去执行下:
这次总算是正常了。
那看看带有变量声明的块
- --带有声明的输出
- Declare
- --变量一般用v_开头,比较容易阅读,至于字符类型,长度,能接收到需要的值就行了
- v_name varchar2(20);
- v_sal number(7,2);
- begin
- --这里的变量赋值很有意思,看清楚语法了吗
- --就是在原有的查询语句中加入了into v_name,v_sal这句话,取到值放到变量中
- --&是对话框的输入符号,至于&n &nn 都是无所谓的,就是个变量名称
- select ename,sal into v_name,v_sal from emp where empno =&n;
- --在控制台显示用户名,||是连字符号
- dbms_output.put_line('name:' || v_name||' sal:'||v_sal);
- end;
执行的时候别忘了另起一行加个 “/”
看看结果吧
查查原来的表:
还是比较正确的嘛。
带有例外处理的块
如果我们输入了一个表中没有的号码呢?
在对话框中入000
得到的结果
竟然报错了
那我们给程序添加点异常处理块吧,也就是增加一个exception捕获,加入我们事先知道错误类型
- --带有声明的输出
- Declare
- --变量一般用v_开头,比较容易阅读,至于字符类型,长度,能接收到需要的值就行了
- v_name varchar2(20);
- v_sal number(7,2);
- begin
- --这里的变量赋值很有意思,看清楚语法了吗
- --就是在原有的查询语句中加入了into v_name,v_sal这句话,取到值放到变量中
- --&是对话框的输入符号,至于&n &nn 都是无所谓的,就是个变量名称
- select ename,sal into v_name,v_sal from emp where empno =&n;
- --在控制台显示用户名,||是连字符号
- dbms_output.put_line('name:' || v_name||' sal:'||v_sal);
- end;
再看看输入00的结果
是不是人性多了。
这也就是个最简单的案例,plsql作用可大了,对于复杂的数据逻辑也能很好的处理,先打好基础,慢慢学吧。
转载于:https://blog.51cto.com/orangleliu/1060762