Welcome 微信登录

首页 / 数据库 / MySQL / Oracle数据库教程:PL/SQL笔记

  1. create table myinfo (myname varchar2(10),passwd varchar(10));  
基于以上表myinfo PL/SQL(procedural language/sql):是Oracle基于标准SQL语言的扩展,在PL/SQL中你可以嵌套sql语句、定义变量、定义常量、使用逻辑语句(条件语句,循环语句等)、使用例外处理各种错误(例外(EXCEPTION)是一种PL/SQL标识符。如果运行PL/SQL块时出现错误或警告,则会触发例外,当触发例外时,默认情况下会终止PL/SQL块的执行,通过在PL/SQL块中引入例外处理部分。可以捕捉各种例外,并根据例外出现的情况进行相应的处理。类似java中的try catch),既然是扩展,当然会使得他的功能更加强大!PL/SQL是强大的数据库过程语言!重要的是:重要的是PL/SQL紧密的结合在Oracle数据库里面。PL/SQL是Oracle数据库使用的三种语言的其中之一,另外两个是SQL和Java。
功能近似PL/SQL的程序语言和其他关系型数据库:Sybase ASE、Microsoft SQL Server的Transact-SQL,PostgreSQL数据库的PL/pgSQL(模仿PL/SQL)和IBM DB2的SQL PL[1],都符合ISO SQL的SQL/PSM标准。
---------------------------------------------------------------------------------------------------pl/sql的优点:提高应用程序的运行性能、模块化设计、减少网络传输量、提高安全性(传统的数据库操作,我们想想:SQL语句写在java程序访问数据库,首先获得连接,编译SQL语句,使得数据库能够认识你的SQL语句,这里每次编译就浪费了一些时间,当数据访问量很大的时候,你的程序性能就比较差了!这里如果我们把某些操作写为一个过程,比如分页、转账过程(功能划分为一个模块,由专人负责维护……)。就可以使得我们的程序性能大大提高,从而数据库操作作为一个模块,当java程序调用时就是调用已经编译的SQL语句,所以在进行程序优化时可以考虑用存储过程进行优化。)【当然还有其他有点好处,欢迎补充】缺点:当需要换数据库时,移植性存在缺陷|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PL/SQL编写规范:A:单行注释:--多行注释:/*……*/B:标识符的命名规范:a.定义变量,建议用v_作为前缀, 例:v_saleb.定义常量,建议用c_作为前缀,例:c_ratec.定义游标,建议用_cursor作为后缀例:emp_cursord.定义例外,建议用e_作为前缀例:e_error-----------------------------------------------------------------------------------PL/SQL是以块为基本单位,块分类{主要有存储过程,函数,触发器,包}
块(block)的介绍:上面说了,PL/SQL是以块为基本单位,,我们编写PL/SQL就是在编写块,简单的应用功能,我们可能只需要一个PL/SQL块就可以实现,复杂的功能就需要多个块了,块可以嵌套。块由三部分组成:{定义部分、执行部分、例外处理部分},即:declare (可选)/*声明部分---定义常量、变量。游标、例外、复杂数据类型*/begin (必须滴)/*执行部分---需要执行的pl/sql语句和SQL语句*/exception(可选的)/*处理运行的各种错误*/end;(必须滴)编写一个简单的块先:例子,
  1. set serveroutput on; --打开输出选项   
  2.   
  3. begin   
  4. dbms_output.put_line("hello,world"); --输出 hello world   
  5. end;  
  6. /  
例子,
  1. declare   
  2. v_name varchar2(10); --定义变量   
  3. begin   
  4. select myname into v_name where passwd=&pswd;  
  5. dbms_output.put_line("这是字符串拼接:"||v_name);  
  6. end;  
  7. /  
例子,外加显示密码:
  1. declare   
  2. v_name varchar2(10); --定义变量   
  3. v_psw varchar2(10);   
  4. begin   
  5. select myname,passwd into v_name,v_psw where passwd=&psw;  
  6. dbms_output.put_line("这是字符串拼接:"||v_name||" password is "||v_psw);  
  7. end;  
  8. /  
这里都会弹出一个框,让输入就是psw的值,where passwd=&psw 例外的情况,如果查询不到数据呢?oracle中会抛出异常,这里我们就可以使用例外了,Exception
  1. declare   
  2. v_name varchar2(10); --定义变量   
  3. v_psw varchar2(10);   
  4. begin   
  5. select myname,passwd into v_name,v_psw where passwd=&psw;  
  6. dbms_output.put_line("这是字符串拼接:"||v_name||" password is "||v_psw);  
  7. --异常处理   
  8. exception  
  9. when no_data_found then   
  10. dbms_output.put_line("未找到匹配数据");  
  11. end;  
  12. /  
  • 1
  • 2
  • 下一页
使用VMware Workstation搭建基于Linux的Oracle 10g RAC由于p3006854_9204_linux.zip在Linux 5.5安装导致的错误解决办法相关资讯      Oracle数据库  Oracle入门教程  oracle数据库教程 
  • Oracle数据库全球化  (03月01日)
  • Oracle数据库日期过滤方法性能比较  (02/02/2015 13:20:26)
  • Oracle数据库安装中端口被占用问题  (10/29/2014 07:42:24)
  • 在CentOS 6.6上搭建C++运行环境并  (10/10/2015 19:44:40)
  • Oracle数据库无法使用localhost和  (11/14/2014 16:39:10)
  • 使用SQLT来构建Oracle测试用例  (08/28/2014 06:17:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数