Oracle pl/sql 基础入门语法
PL/SQL是一种块结构的语言,这意味着PL/SQL程序被划分和编写代码的逻辑块。每块由三个子部分组成:
1 声明
此部分开头使用关键字DECLARE。它是一个可选的部分,并限定在该程序中使用的所有变量,游标,子程序,和其他元素。
2 可执行命令
此部分是封闭关键字BEGIN和END,这是一个强制性的部分。它由程序的可执行文件的PL/SQL语句。它应具有至少一个可执行的代码行,这可能仅仅是一个空命令,以指示什么都不执行。
3 异常处理
此部分开头使用关键字EXCEPTION。此部分又是可选的,含有异常,在程序处理错误中。
这里是一个PL/SQL块的基本结构:
DECLARE
<declarations section>
BEGIN
<executable command(s)>
EXCEPTION
<exception handling>
END;
一、声明
声明一个变量的语法是:
[VARIABLE] variable_name [CONSTANT] datatype [NOT NULL] [:= | DEFAULT initial_value]
变量声明
<变量名> 类型[:=初始值];
常量声明
<变量名> CONSTANT 类型:=初始值; --示例: pi CONSTANT number(5,3):=3.14;
全局变量声明
VARIABLE <变量名> 类型; --示例: VARIABLE num number;
初始化变量
counter binary_integer := 0;
greetings varchar2(20) DEFAULT 'Have a Good Day';
变量的作用域
有两种类型的变量范围:
局部变量 - 在[内部块中]声明,并不能访问外块中的变量。
全局变量 - 在[最外层块]或包中声明的变量。
二、数据类型
基本数据类型和特殊数据类型
基本数据类型:number(p,s);varchar2(size);char(size);long;nvarchar2(size);nchar(size);date;boolean;real(与number等价);rowid(存放数据库的行号);
特殊数据类型:%type类型(单个字段);record类型(多个字段);%rowtype类型(一条记录)。
1、%type类型:声明一个与指定列相同的数据类型。
如:var_ename emp.ename%type;
声明的var_ename的数据类型与emp表中的ename列数据类型相同。
set serveroutput on --设置系统输出的状态. declare var_firstname EMPLOYEES.first_name%type; var_job EMPLOYEES.job_id%type; begin ; SYS.dbms_output.put_line(var_firstname||'的工作是'||var_job); end;
2、record类型:也成为‘记录类型’,要先定义一个记录类型,再使用记录类型声明一个记录类型的变量。 如:
set serveroutput on declare type emp_type is record /*先定义一个记录类型,emp_record为定义的记录类型名*/ ( var_a1 EMPLOYEES.first_name%type, var_a2 EMPLOYEES.job_id%type, var_a3 EMPLOYEES.salary%type ); empinfo emp_type; /*再声明一个记录类型的变量*/ begin ; dbms_output.put_line(empinfo.var_a1||'的工作是'||empinfo.var_a2||',并且工资是'||empinfo.var_a3); end;
3、%rowtype类型:用来存储数据表中检索到的一行数据。
set serveroutput on declare var_row EMPLOYEES%rowtype; /*emp_row表示变量名;emp为指定的表名,表示用来存储哪个表中的一行数据*/ begin ; dbms_output.put_line(var_row.first_name||'的工作是'||var_row.job_id||',并且工资是'||var_row.salary); end;
三、语句语法
1、条件控制语句
IF <条件1> THEN
语句
[ELSIF <条件2> THEN
语句
....
ELSIF <条件n> THEN
语句]
[ELSE
语句]
END IF;
2、循环控制语句
1.LOOP
LOOP
语句;
EXIT WHEN <条件>
END LOOP;
2.WHILE LOOP
WHILE <条件>
LOOP
语句;
END LOOP;
3.FOR
FOR <循环变量> IN 下限..上限
LOOP
语句;
END LOOP;
三、NULL 语句
null;
表示没有操作;
四、
异常处理
EXCEPTION
WHEN <异常类型> THEN
语句;
WHEN OTHERS THEN
语句;
END;
Oracle pl/sql 基础入门语法的更多相关文章
- Oracle+PL+SQL从入门到精通.丁士锋.清华大学出版社.2012
\t第1篇 pl/sql开发入门第1章 oracle 11g数据库系统1.1 关系型数据库系统介绍1.1.1 什么是关系型数据模型1.1.2 数据库系统范式1.1.3 关系型数据库管理系统1.1.4 ...
- 二十、oracle pl/sql基础
一.pl/sql developer开发工具pl/sql developer是用于开发pl/sql块的集成开发环境(ide),它是一个独立的产品,而不是oracle的一个附带品. 二.pl/sql介绍 ...
- oracle pl/sql 基础
一.pl/sql developer开发工具pl/sql developer是用于开发pl/sql块的集成开发环境(ide),它是一个独立的产品,而不是oracle的一个附带品. 二.pl/sql介绍 ...
- oracle PL/SQL基础编程
PL/SQL(Procedural Language/SQL)是oracle中引入的一种过程化编程语言 PLS-00103:出现符号"declare"在需要下列之一时 符号&quo ...
- Oracle PL/SQL基础
1.下载sql developer数据库连接可视化工具 连接地址:点我下载 下载完成,安装有Java环境,解压即可运行,也可以在linux系统中运行.
- Oracle PL/SQL入门之慨述
Oracle PL/SQL入门之慨述 一.PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言( ...
- Oracle PL/SQL语句基础学习笔记(上)
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...
- oracle PL/SQL编程基础知识
在oracle中使用pl/sql来扩展SQL的功能,使得SQL能够更加的灵活,功能更加强大,效率更高.pl/sql让sql也能执行判断,循环等操作.主要记录一下pl/sql的基本语法和基本条件判断语句 ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
随机推荐
- PHP 5.2、5.3、5.4、5.5、5.6 版本区别对比以及新功能详解
截至目前(2015.1), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 的 PHP5.2, 其余的一半用户在使用 PHP5.3 . 因为 PHP 那“集百家之 ...
- 子矩阵(暴搜(全排列)+DP)
子矩阵(暴搜(全排列)+DP) 一.题目 子矩阵 时间限制: 1 Sec 内存限制: 128 MB 提交: 1 解决: 1 [提交][状态][讨论版] 题目描述 给出如下定义: 1. 子矩阵:从一 ...
- 20180403_调bug_大地保险_jar包冲突
一.异常现象 他们程序在本地通过java形式直接跑起来的时候,是正常的. 但是测试服务器上,程序跑到一半就不继续往下走了,而且,也不报错,日志里面没有任何信息. 二.异常解决 1.核心思想 抽丝剥茧, ...
- php实现word在线浏览功能。
http://laoniangke.com/php/2012/10/08/php-doc-webview.html
- nodejs读取excel内容批量替换并生成新的html和新excel对照文件
因为广告投放需要做一批对外投放下载页面,由于没有专门负责填充页面的编辑同学做,只能前端来做了, 拿到excel看了一下,需要生成200多个文件,一下子懵逼了. 这要是来回复制粘贴太low了 正好最新用 ...
- CentOS X64上64位Oracle 11gR2 静默安装
CentOS 6.2 X64上64位Oracle 11gR2 静默安装 www.linuxidc.com/Linux/2012-03/56606p4.htm HP-UX静默安装oracle11g过程 ...
- iptables的启动和关闭【转载】
原文网址:http://os.51cto.com/art/201103/249049.htm iptables的启动和关闭: 1.启动和关闭iptables 下面将正式使用iptables来创建防火墙 ...
- Python 函数之递归
递归函数定义 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 我们来计算阶乘 n! = 1 x 2 x 3 x ... x n ,用函数 fact(n) 表示 f ...
- 解决方案: the selected file is a solution file but was created by a newer version of this application and cannot be opened
最近在用IronGithub访问Github api时遇到一个问题: the selected file is a solution file but was created by a newer v ...
- C++动多态和静多态
动多态的设计思想:对于相关的对象类型,确定它们之间的一个共同功能集,然后在基类中,把这些共同的功能声明为多个公共的虚函数接口.各个子类重写这些虚函数,以完成具体的功能.客户端的代码(操作函数)通过指向 ...