一、PL/SQL目标
二、Pl/SQL简介
?? 是Oracle公司开发的,专门用于Oracle数据库的一种程序开发语言。
?? Pl:代表procedural language,过程性语言。
?? SQL:
?? 增加了循环控制、条件判断等编程语言的特点。
三、块block的介绍
?? 组成:包含4个部分。
?? 1、块的声明部分,以declare关键字开头。写所有的变量、常量声明。是可选的部分。
?? 2、块的主体部分,以begin关键字开头,写块的主要功能。是必须的部分。
?? 3、异常处理部分,以exception关键字开头,处理主体部分可能出现的异常。是可选的部分。
?? 4、结束部分,以关键字end开头,标示一个块的结束。是必须的部分。end;
?? 注意事项:1、所有的声明都写在declare部分。
???????????? 2、每行结束都要加上;除了declare,begin,exception这几个关键字之外。
???????????? 3、一个语句通常写在一行。
四、块的类型
??? 1、匿名块:
??? 2、命名块:
?????????? a\存储过程、函数:被动执行
?????????? b\触发器:自动执行。
五、变量
??? 1、变量命名规则
??? 2、命名建议。
??? 3、变量类型
?????? 标量型:内部没有分量
????????????? a、数值型:number、binary_integer、PLS_integer
????????????? b、字符型:char,varchar2,
????????????? c、日期型:date
????????????? d、布尔型:true,False,Null,
?????? 复合型:内部有分量
????????????? a、记录型变量。
????????????? b、pl/SQL表类型。??????????
?????? 引用型:
?????? LOB型:?
?????? 外部变量:声明在块之外的。
??????????? 绑定变量:绑定变量需要在块的外部声明,使用variable 变量名 变量类型。在块的内如果要使用绑定变量
??????????? ,需要在变量名之前加上:
??????????? 替代变量:不需要声明,直接在块中就可以使用。使用方式在变量名前加上&,该变量需要在程序运行时赋值。?????????????
??? 4、变量声明语法
?????? 变量名 [Constant] 变量数据类型 [Not Null] [:=表达式] [Default 表达式];
?????? 注意:变量名不区分大小写。
?????? 当使用not null或constant时,必须为其赋初值。
??????
?????? %Type:一种简便声明变量的方式。使用语法:
?????? 变量名 前缀%Type? [Not Null] [:=表达式] [Default 表达式];
?????? 前缀可以是某个表中的某个列,或者是另一个先前声明的变量。该声明方式可以随时和数据库中的某个列保持同步。
??? 5、变量赋值:
?????? 语法1:变量名 :=?? 表达式;该语法可以写在declare,begin,exception部分。
?????? 语法2:select 列名|表达式 Into 变量名 From ..........
????????????? *:如果查询结果集是多行或者0行,则该语句抛出异常。
????????????? select后面的列名列表必须和into后面的变量名列表在个数上和数据类型上保持一致。
????????????? 多个变量名之间用,分割。该语法必须写在begin部分。
??? 6、dmbs_output.put_line:输出语句。?
??? 7、set serveroutput On:打开输出标志。
六、注释
?? 1、单行注释:--
?? 2、多行注释: /* 开始,*/结束。
七、过程语句中的函数??
??? 1、有效的:单行字符、单行数值、单行日期、转换、nvl.
??? 2、无效的:所有分组函数、decode
八、嵌套块和变量的作用域。
九、PL/SQL块中的SQL语句。???
??? 只有DML(insert、update、delete、merge)、Select、TCL(commit、rollback、savepoint)
??? 这三种命令可以直接写在pl/sql块中。
??? DDL(Create\Alter\Drop\Rename\truncate)、DCL(Grant\Revoke)不可以直接写。
??? 块和事务没有必然联系。
详细解决方案
PL/SQL(oracle)一_plsql简介
热度:107 发布时间:2016-05-05 14:51:07.0
相关解决方案
- plsql 里怎么判断密码长度大于等于6
- oracle 分页排序,ssi,该怎么处理
- oracle 最近的时间(而不是前一天的时间) 跪求sql语句 。解决方法
- oracle,该怎么解决
- 在 Hibernate3 查询不到 Oracle 11g 里的记录
- oracle 安装时出现 java tm 异常
- android访问其他数据库(如:oracle、MySql等),希望大家给点建议!解决方案
- oracle 安插 LONG VARCHAR 类型数据
- java-plsql 有关问题
- ORACLE 一条SQL的有关问题
- oracle loadjava如何用
- oracle,该如何处理
- C# + SQL server +oracle QQ交流群142703980解决方法
- 怎么跟踪winform应用程序发送到数据库的sql(oracle、mssql)
- , 每次玩ASP都会遇到一些恶心的有关问题, 这次是:未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运,该怎么解决
- 求解:gridview行值的计算并绑定有关问题(asp.net+oracle)
- Oracle.DataAccess 执行多条sql语句,该如何解决
- VS10连接Oracle的有关问题:"Oracle.DataAccess.Client.OracleConnection"的类型初始值设定项引发错误
- System.Data.OleDb.OleDbException: 未找到 Oracle 客户端和网络组件。
- asp.net oracle 参数化 模糊查询出错,该怎么处理
- Oracle-参数查询有关问题
- oracle,insert 语句插入一条记录后要求,返回主键id値。解决思路
- Oracle 10g下的SQL语句,有点难度.请~[同时向朋友们道歉~]
- 月统计(oracle)解决办法
- 在线紧急等一sql语句(oracle),该怎么处理
- 面试问,为什么jsp+oracle,asp+sql server这样来搭配?该如何处理
- oracle 连接数据库该如何写语句的
- System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
- oracle 防sql注入有关问题!