很久没写PL/SQL了,在这里把以前的知识拿出来和新入行的朋友们分享,自己也可以巩固,分享快乐!感谢宁姐教育啊
1、PL/SQL语言简介: SQL99: 1999年制定的SQL标准;oracle、db2、sybase、sql server、mysql...都遵守这个标准。 PL/SQL(PL: Procedure Language)是标准SQL语言上的过程性扩展,他不仅允许嵌入SQL语句, 而且允许定义变量和常量,允许过程语言结构(条件分支语句和循环语句), 允许使用例外处理Oracle错误等,在运行Oracle的任何平台上应用开发人员多可以使用PL/SQL。 注意:PL/SQL在不同数据库中语法不同。 PL/SQL的特点: 1 提高应用程序的运行性能; 2 提供模块化得程序设计功能; 3 允许定义标识符; 4 具有过程语言控制结构; 5 具有良好的兼容性; 6 处理运行错误。
2、PL/SQL的程序结构: PL/SQL的程序结构主要包括:变量、赋值、表达式、分支、循环。 1.PL/SQL程序块的组成([]代表可有可无): [declare] 变量声明 begin 语句; 执行部分 [exception] 异常 捕捉并作异常处理 end; 2.尝试第一个打印语句:HelloWorld! set serveroutput on; begin dbms_output.put_line('HelloWorld!'); end; / 注意:Oracle默认屏幕输出是关闭的,可以使用show serveroutput 查看,默认OFF , 使用set serveroutput on;打开屏幕输出。"/" 可以执行你刚才的语句,看到结果。 第一个例子就完成了。
3. 匿名块:等价于一条SQL语句,常用于调试。 取出姓名为scott员工的职位: declare v_title varchar2(20); -- 查询名字是scott 的工作,赋值给我们的变量 begin select job into v_title from emp where ename = 'SCOTT'; dbms_output.put_line(v_title); end; 注意:标示符长度不超过30个字符; 单行注释:"--注释"、多行注释:"/*注释*/"。 这里我用的是oracle 10G,用户是scott用户,如果登录提示:the account is locked 请先登录超级用户 :sys as aysdba/(你的密码) 进行解锁 然后输入:alter user scott acount unlock 修改用户密码:alter user scott identified by 密码。
4.异常块: 取出姓名为aa员工(部门号为10)的职位: declare v_title varchar2(20); begin select job into v_title from emp where ename = 'aa'; --where deptno='10' 多行的错误 dbms_output.put_line(v_title); exception when no_data_found then dbms_output.put_line('no data found!'); when too_many_rows then dbms_output.put_line('too many rows '); end; / 注意:no_data_found(数据没有找到异常)、too_many_rows(数据查找过多异常) 这里异常名称是不能改变了,常用的异常,有兴趣可以自己去查询。后面会说到自己定义异常。
PLSQL 和程序差不多,一些固定的逻辑语法,组织你需要的业务,后面再更多的介绍