oracle 9i从入门到精通读书笔记2

第二章:PL/SQL基础 

2.1 PL/SQL程序结构 

2.1.1 PL/SQL块的类型 

所有的PL/SQL程序都是以块作为基本单位,以及都是由块组成的。 

这些块可以是按顺序出现的,也可以是嵌套的 

块可以根据其带名称和不带名称以及在数据库中的存储方式分为以下类型: 

匿名块:只能执行一次,不能存储在数据库中 

带名块:一种带标签的匿名块 

子程序:可以存储在数据库中的过程,函数和包,可以多次执行,可以在外部的程序中显示调用 

触发器:存储在数据库中的带名块,当相应的触发事件发生时触发器就被自动执行,触发器事件一般是针对特定的数据库表进行的DML语句,如INSERT,UPDATE,DELTE 

<<I_Namedblock>> 

DECLARE 

v_num1 NUMBER := 1; 

v_num2 NUMBER := 2; 

v_str1 VARCHAR2 (30) := '你好!'; 

v_str2 VARCHAR2 (30) := '这是你第一次接触PL/SQL'; 

v_outputstr VARCHAR2 (30); 

BEGIN 

INSERT INTO test_table(ncolumn, vcolumn)VALUES (v_num1, v_str1); 

INSERT INTO test_table(ncolumn, vcolumn)VALUES (v_num2, v_str2); 

SELECT vcolumn INTO v_outputstr FROM test_table WHERE ncolumn = v_num1; 

DBMS_OUTPUT.put_line (v_outputstr); 

SELECT vcolumn INTO v_outputstr FROM test_table WHERE ncolumn = v_num2; 

DBMS_OUTPUT.put_line (v_outputstr); 

END I_Namedblock; 

带名块就是在匿名块前面加上一个标签 

把DECLARE关键字 变成 CREATE OR REPLACE PROCEDURE 就变成了存储过程 

CREATE OR REPLACE PROCEDURE 过程名 IS 

2.1.2 PL/SQL块的结构 

所有块都包含3个部分:声明部分,执行部分,异常处理部分 

DECLARE 

v_ncolumn NUMBER :=6; 

v_vcolumn VARCHAR2(30); 

BEGIN 

SELECT v_column INTO v_vcolumn FROM test_table WHERE ncolumn=v_ncolumn; 

EXCEPTION 

WHEN NO_DATA_FOUND THEN 

DBMS_OUTPUT.PUT_LINE('没有找到匹配的数据'); 

END; 

在过程和函数中声明变量是不需要DECLARE的,但在声明TRIGGER中的变量是必须要有DECLARE 

如果块中不需要声明变量,类型和游标时,声明部分可以省略 

执行部分是不可缺少的,一般以BEGIN开始 END结束。END关键字必须是分号结束的 

2.1.3 词法单位 

e代表乘以10的多少次幂 

2.2 变量声明 

Variable_name [CONSTANT] type [NOT NULL][:=value | DEAFULT value] 

Variable_name是变量名 

CONSTANT 声明的是一个常量 

Type 是类型 

NOT NULL 可选,表示不能为空 

:=value | DEAFULT value表示赋值 

缺省的变量会被初始化为NULL 

不能把NULL付给一个定义为NOT NULL的变量acct_id INTEGER(5) NOT NULL;这样是不允许的 

在NATURAL和POSITIVEN,他们被预先定义为NOT NULL 

每行只能声明一个变量,这和其他语言不同 

BEGIN END;是可以嵌套的 

2.3 变量类型 

4中标量类型(数字类型,布尔型,字符型,日期型) 

复合型 

引用型 

LOB型 

数字型的三种基本类型:BINARY_INTEGER,NUMBER,PLS_INTEGER 

字符型:CHAR,VARCHAR2,LONG和LONG RAW,RAW,ROWID和UROWID 

LOB类型:BFILE,BLOB,CLOB,NCLOB 

布尔类型:BOOLEAN(TRUE,FALSE,NULL) 

日期时间类型:DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE,INTERVAL YEAR TO MONTH,INTERVAL DAY TO SENCOND 

复合类型:记录,表,数组 

引用类型:REF CURSOR 和ref object_type 

用户自定义类型 

2.4 数据类型转换 

显式转换,可以使用内置函数 

隐式转换,隐式转换不是好的习惯,可能会影响效率,结果可能不可预料 

2.5 表达式 

表达式是由操作符和运算符的结合 

CASE 表达式 

CASE SELECTOR 

WHEN express THEN result1 

WHEN express THEN result3 

WHEN express THEN result2 

END;

转载于:https://www.cnblogs.com/myfreefield/archive/2011/04/03/2004392.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用envi对landsat8数据进行处理

envi5.3打开landsat头文件数据有问题 应用商店插件下载链接附有安装教程 envi应用商店.zip_envi商店-互联网文档类资源-CSDN下载 需要在应用商店下载对应工具 点击下载好的工具 此处点击完后直接在envi最上面open文件landsat头文件 选择波段加载影像 进行辐射定标 选择多光谱…

multibin

为提高boot引导速度&#xff0c;&#xff0c;需支持multibin。方法如下:1.D:\WINCE600\PLATFORM\SMDKV210\SMDKV210.batREM For Multiple XIP (using demand paging on BINFS)set IMGMULTIXIP12.调整config.bib镜像大小由于系统生成的XIPKERNEL约为3M。大于默认设置。所以改大到…

利用arcgis对斜坡单元批量后处理

之前作者利用arcgis自定义工具箱创建了利用dem生成斜坡单元的工具箱&#xff0c;工具箱下载链接如下 ArcGIS自动生成斜坡单元_arcgis生成斜坡单元,arcgis斜坡单元-互联网文档类资源-CSDN下载 在前几天用户使用过程中出现了一些问题 发现工作空间还是作者电脑路径 需要将此取…

python复制文件的代码_python 复制文件流程

例子代码&#xff1a;[rootmaster script]#vim copy_file.py#!/usr/bin/python#-*- coding:utf-8 -*-old_file_name raw_input("Please input you need copys file name:")old_file open(old_file_name,r)new_file open(langwang.txt,w)contentold_file.read()new_fi…

java指令和javac指令总结

假如在D:\Java存放了两个java源文件&#xff1a;MyJava.java&#xff0c;Fighting.javaMyJava.java如下&#xff1a;public class MyJava { public static void main(String[] arr) { System.out.println("MyJava"); }}Fighting.java如下&#xff1a;package mxw.…

大型网站的负载均衡器、db proxy和db

大型网站的负载均衡器、db proxy和db 本文主要分析网站后台架构中的负载均衡器&#xff0c;企业常用的硬件负载均衡器软件负载均衡器、数据库代理服务器和数据库。 1.1 负载均衡 在大型网站部署中&#xff0c;负载均衡至少有三层部署。第一层为web server或者缓存代理之上的负载…

连接网络后浏览器却上不了网

解决在IE浏览器中 更新后的系统IE浏览器需要搜索才能出现 完成

python验证码重叠_用Python机器学习搞定验证码

写爬虫有一个绕不过去的问题就是验证码&#xff0c;现在验证码分类大概有4种&#xff1a;图像类滑动类点击类语音类今天先来看看图像类&#xff0c;这类验证码大多是数字、字母的组合&#xff0c;国内也有使用汉字的。在这个基础上增加噪点、干扰线、变形、重叠、不同字体颜色等…

ecshop 函数列表大全

ecshop 函数列表大全 所有函数功能说明:lib_time.phpgmtime()P: 获得当前格林威治时间的时间戳 /$0server_timezone()P: 获得服务器的时区 /$0local_mktime($hour NULL , $minute NULL, $second NULL, $month NULL, $day NULL, $year NULL)P: 生成一个用户自定义时区日期的…

shell环境变量以及set,env,export的区别

一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量 包括的私有变量以及用户变量&#xff0c;不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样 env:显示(设置)用户变量变量 export:显示(设置)当前导出成用户变量的shell变量。 举…

linux 字符串截取_linux下可执行文件分析

一 背景也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等&#xff0c;这篇文章就记录我分析下二进制可执行文件的过程&#xff0c;已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可执行文件。二 常用二进制文件静态分…

Objective-C 的OOP(下)-类(static)方法、实例方法、overwrite(覆写)、属性(property)...

先来定义一个Human父类 定义部分&#xff1a; 1234567891011121314151617181920 //// Human.h// OOP//// Created by jimmy.yang on 11-2-9.// Copyright 2011 __MyCompanyName__. All rights reserved.// #import <Foundation/Foundation.h> interface Human : NS…

介绍最全的LVS负载均衡技术

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率&#xff0c;将请求均衡地转移到不同的服务器上执行&#xff0c;且调度器自动屏蔽掉服务器的故障&#xff0c;从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透…

linux 版本_Linux动态库版本号作用机制

熟悉linux的都知道&#xff0c;linux的动态库如果有版本号的话&#xff0c;一般是libsample.so.x.y.z这样的名字。x.y.z对应的就是major.minor.release(即主.次.发布)版本号Major&#xff1a;大版本更新&#xff0c;前后都不兼容(比如移除api&#xff0c;又新增api)Minor&#…

信息系统项目管理系列之九:项目质量管理

信息系统项目管理系列之九&#xff1a;项目质量管理 信息系统项目管理系列之九&#xff1a; 项目质量管理 发布日期&#xff1a;2011年4月9日 星期六 作者:EricHu 说明&#xff1a;本文属作者的读书笔记。 勤能补拙、笨鸟先飞。 本篇主要内容如下&#xff1a; 项目质量管…

arcgis在面内创建随机点

在数据管理工具下选择要素类&#xff0c;在要素类下选择创建随机点

python tkinter listbox_Python3 tkinter基础 Listbox for+insert 将list中元素导入listbox中

Python : 3.7.0OS : Ubuntu 18.04.1 LTSIDE : PyCharm 2018.2.4Conda : 4.5.11typesetting : Markdowncode"""Author : 行初心Date : 18-10-1Blog : www.cnblogs.com/xingchuxinGitee : gitee.com/zhichengjiu"""from tkinter import *def main(…

Apple`s Steve Jobs Has Reshaped(重塑) the Tech World: 10 Ways He Did It

A new book is in the works that promises to shed(除掉, 使脱落, 使流出, 使清晰) more light on Apple. Dubbed(命名的, 配音的, 译制的) “iSteve: The Book of Jobs,” the book, which is written by Walter Isaacson, is an authorized biography of Apple co-founder S…

python中osgeo库使用教程链接

1. 地理数据处理软件包GDAL简介 2. GDAL python教程&#xff08;1&#xff09;——用OGR读写矢量数据 3. GDAL python教程&#xff08;2&#xff09;——几何形状geometry与投影projection4. GDAL python教程&#xff08;3&#xff09;——过滤器&#xff0c;简单的空间分析&…