Skip to main content

米斯特周

Tag: Oracle

Oracle PL/SQL编程详解

Oracle PL/SQL编程详解

## 1. PL/SQL 程序设计简介

SQL语言只是访问、操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发。PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点。本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的主要特点,以及了解PL/SQL语言的重要性和数据库版本问题。还要介绍一些贯穿全书的更详细的高级概念,并在本章的最后就我们在本书案例中使用的数据库表的若干约定做一说明。

# 1.1 SQL与PL/SQL

## 1.1.1 什么是PL/SQL?

PL/SQL是 Procedure Language & Structured Query Language 的缩写。ORACLE的SQL是支持ANSI(American national Standards Institute)和ISO92 (International Standards Organization)标准的产品。PL/SQL是对SQL语言存储过程语言的扩展。从ORACLE6以后,ORACLE的RDBMS附带了PL/SQL。它现在已经成为一种过程处理语言,简称PL/SQL。目前的PL/SQL包括两部分,一部分是数据库引擎部分;另一部分是可嵌入到许多产品(如C语言,JAVA语言等)工具中的独立引擎。可以将这两部分称为:数据库PL/SQL和工具PL/SQL。两者的编程非常相似。都具有编程结构、语法和逻辑机制。工具PL/SQL另外还增加了用于支持工具(如ORACLE Forms)的句法,如:在窗体上设置按钮等。本章主要介绍数据库PL/SQL内容。

# 1.2 PL/SQL的优点或特征

## 1.2.1 有利于客户/服务器环境应用的运行

对于客户/服务器环境来说,真正的瓶颈是网络上。无论网络多快,只要客户端与服务器进行大量的数据交换。应用运行的效率自然就回受到影响。如果使用PL/SQL进行编程,将这种具有大量数据处理的应用放在服务器端来执行。自然就省去了数据在网上的传输时间。

## 1.2.2 适合于客户环境

PL/SQL由于分为数据库PL/SQL部分和工具PL/SQL。对于客户端来说,PL/SQL可以嵌套到相应的工具中,客户端程序可以执行本地包含PL/SQL部分,也可以向服务发SQL命令或激活服务器端的PL/SQL程序运行。

## 1.2.3 过程化

PL/SQL是Oracle在标准SQL上的过程性扩展,不仅允许在PL/SQL程序内嵌入SQL语句,而且允许使用各种类型的条件分支语句和循环语句,可以多个应用程序之间共享其解决方案。

## 1.2.4 模块化

PL/SQL程序结构是一种描述性很强、界限分明的块结构、嵌套块结构,被分成单独的过程、函数、触发器,且可以把它们组合为程序包,提高程序的模块化能力。

## 1.2.5 运行错误的可处理性

使用PL/SQL提供的异常处理(EXCEPTION),开发人员可集中处理各种ORACLE错误和PL/SQL错误,或处理系统错误与自定义错误,以增强应用程序的健壮性。

## 1.2.6 提供大量内置程序包

ORACLE提供了大量的内置程序包。通过这些程序包能够实现DBS的一些低层操作、高级功能,不论对DBA还是应用开发人员都具有重要作用。 当然还有其它的一些优点如:更好的性能、可移植性和兼容性、可维护性、易用性与快速性等。

oracle静默方式建库

有时候,真的不愿意用xmanager连服务器,再用GUI界面去创建、删除数据库,所以摸索了一下静默方式。以下内容是以oracle11gR2为参照版本的。

# 1、静默方式建库

oracle用户的主目录touch一个db_create.rsp文件,编辑该文件,内容如下:

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0.1.0"  
OPERATION_TYPE = "createDatabase"  
[CREATEDATABASE]
GDBNAME = "tasdb"  
TEMPLATENAME = "General_Purpose.dbc"  
CHARACTERSET = "ZHS16GBK"  
oracle.install.db.InstallEdition = EE  
SYSPASSWORD = oracle  
SYSTEMPASSWORD = oracle  
MEMORYPERCENTAGE = "15"  

responsefile_version 响应文件版本,其实就是数据库版本

operation_type 静默操作类型

余下的内容请看稍后的响应文件例子。之后,执行这个命令开始建库:

dbca -silent -responseFile ./db_create.rsp

RHEL 5: How to install Oracle10g

该文档适用于RHEL 5系列操作系统下面安装Oracle10G。

# 一、安装前的准备工作

安装oracle前,内核参数调整,添加到/etc/sysctl.conf

# oracle kernel settings
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6553600
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144