Oracle入门(十四.4)之在PL / SQL中使用变量
一、变量的使用
(1)使用变量的原因
•临时存储数据
•储存值的操作
•可重用性
(2)处理PL / SQL中的变量
变量是:
•在声明部分声明并初始化
•在可执行部分中使用并分配新值
变量可以是:
•作为参数传递给PL / SQL子程序
•分配以保存PL / SQL子程序的输出
(3)声明变量
在PL / SQL块中引用所有PL / SQL变量之前,必须在声明部分声明它们。
•声明的目的是为值分配存储空间,指定其数据类型并命名存储位置以便引用它。
•您可以在任何PL / SQL块,子程序或包的声明部分声明变量。
语法
identifier [CONSTANT] datatype [NOT NULL] [:= expr | DEFAULT expr];
(4)初始化变量
变量在DECLARE部分中分配一个内存位置。 变量可以同时分配一个值。 这个过程称为初始化。
DECLARE
v_counter INTEGER := 0;
BEGINv_counter := v_counter + 1;DBMS_OUTPUT.PUT_LINE(v_counter);
END;
(5)声明和初始化变量示例1
DECLAREfam_birthdateDATE;fam_size NUMBER(2) NOT NULL := 10;fam_location VARCHAR2(13) := 'Florida';fam_bank CONSTANT NUMBER := 50000;fam_population INTEGER;fam_name VARCHAR2(20) DEFAULT 'Roberts';fam_party_size CONSTANT PLS_INTEGER := 20;
(6)声明和初始化变量示例2
DECLAREv_emp_hiredate DATE;v_emp_deptno NUMBER(2) NOT NULL := 10;v_location VARCHAR2(13) := 'Atlanta';c_comm CONSTANT NUMBER := 1400;v_population INTEGER;v_book_type VARCHAR2(20) DEFAULT 'fiction';v_artist_nameVARCHAR2(50);v_firstname VARCHAR2(20):='Rajiv';v_lastname VARCHAR2(20) DEFAULT 'Kumar';c_display_no CONSTANT PLS_INTEGER := 20;
…
二、在可执行部分中分配值
声明变量后,可以在PL / SQL块的可执行部分中使用它。 例如,在下面的块中,变量v_myname在块的声明部分中声明。 您可以在同一个块的可执行部分访问此变量。 你认为这个块会打印什么?
DECLAREv_myname VARCHAR2(20);
BEGINDBMS_OUTPUT.PUT_LINE('My name is: '||v_myname);v_myname := 'John';DBMS_OUTPUT.PUT_LINE('My name is: '||v_myname);
END;
(1)在可执行部分中分配值
例1
在这个例子中,值John被分配给可执行部分中的变量。 该变量的值与串 My name is:。
输出是:
My name is:
My name is: John
Statement process.
例2
在此块中,变量v_myname在声明部分中声明并初始化。 初始化后,v_myname保存值John。 该值在块的可执行部分中进行处理。
DECLAREv_myname VARCHAR2(20):= 'John';
BEGINv_myname := 'Steven';DBMS_OUTPUT.PUT_LINE('My name is: '||v_myname);
END;
输出是:
My name is: Steven
Statement processed.
(2)将变量作为参数传递给PL / SQL子程序
参数是由用户或另一个程序传递给程序以定制程序的值。 在PL / SQL中,子程序可以带参数。 您可以将变量作为参数传递给过程和函数。 在以下示例中,参数v_date正被传递给过程PUT_LINE,该过程是包DBMS_OUTPUT的一部分。
DECLAREv_date VARCHAR2(30);
BEGINSELECT TO_CHAR(SYSDATE) INTO v_date FROM dual;DBMS_OUTPUT.PUT_LINE(v_date);
END;
(3)分配变量到PL / SQL子程序输出
您可以使用变量来保存函数返回的值。
--function to return number of characters in string
FUNCTION num_characters (p_string IN VARCHAR2) RETURN INTEGER ISv_num_characters INTEGER;
BEGINSELECT LENGTH(p_string) INTO v_num_characters FROM dual;RETURN v_num_characters;
END;
--anonymous block: assign variable to function output
DECLAREv_length_of_string INTEGER;
BEGINv_length_of_string := num_characters('Oracle Corporation');DBMS_OUTPUT.PUT_LINE(v_length_of_string);
END;
Oracle入门(十四.4)之在PL / SQL中使用变量相关推荐
- Oracle入门(十四G)之PL / SQL中检索数据
一.PL / SQL中检索数据 (1)PL / SQL中的SQL语句 可以在PL / SQL中使用以下几种SQL语句: •SELECT从数据库检索数据. •DML语句,例如INSERT,UPDATE和 ...
- Oracle入门(十四.1)之PL / SQL简介
一.PL / SQL描述 程序语言扩展到SQL: •允许将基本程序逻辑和控制流与SQL语句组合在一起. •是Oracle专有编程语言. - 它只能用于Oracle数据库或工具. 二.程序语言扩展到SQ ...
- Oracle入门(十四F)之PL/SQL定义变量
一.变量介绍 (1)变量的使用 可以使用变量: 临时存储数据 存储值的操作 可重用性 (2)PL/SQL中的变量处理 变量是: 在声明部分中声明和初始化 在可执行部分中使用和分配新值 变量可以是: 作 ...
- Oracle入门(十四B)之PL/SQL异常处理
定义:程序执行过程的警告或错误成为例外(Exception) 一.常见预定义错误 二.非预定义错误及用户定义错误 (1)非预定义oracle错误 其他标准的oracle错误,可以自定义异常名,将其与指 ...
- Oracle入门(十四.2)之PL / SQL的好处
一.PL / SQL的好处 在Oracle数据库中使用PL / SQL编程语言有很多好处. 1.将过程构造与SQL集成 2.模块化程序开发 3.改进的性能 4.与Oracle工具集成 5.便携性 6. ...
- Oracle入门(十四A)之PL/SQL 基本结构
一.条件控制语句 (1)条件语句I if-then-end if 形式1: if <布尔表达式> then-(pl/sql和sql)-end if; (2)条件语句II if-then-e ...
- Oracle入门基础(十一)一一PL/SQL基本语法
1.打印Hello World declare--说明部分 begin--程序dbms_output.put_line('Hello World'); end; 2.引用型变量 查询并打印7839的姓 ...
- Oracle PL/SQL编程之变量
注: 以下测试案例所用的表均来自与scott方案,使用前,请确保该用户解锁. 1.简介 和大多数编程语言一样,在编写PL/SQL程序时,可以定义常量和变量,在pl/sql程序中包括有: a.标量类型( ...
- Oracle数据库第四课——PL/SQL中的条件控制
知识点: PL/SQL 有 3 种类型的条件控制结构:IF.ELSIF 和 CASE 语句.掌握 IF 语句的用法, 掌握 ELSIF 语句的用法, 理解嵌套 IF 语句的用法, 掌握 CASE 语句 ...
最新文章
- 转载 想要在项目中引入其他项目的方法为
- 太阳能正在崛起 光伏养老蔚然成风
- nginx反向代理配置如何去除前缀
- Python弹窗提示警告框MessageBox
- mac mysql本地连接数_Mac OS X下MySQL 5.0的默认连接数
- 用python写石头剪刀布_Python实现简单石头剪刀布游戏
- java中的pane,Java中scroll pane的使用(一)– 动态改变其client的大小 | 学步园
- 一键root+android+5.0,360一键rootv5.0.0最新版
- 埃及分数c语言实训报告,C语言实例 将真分数分解为埃及分数
- 加一度简答SEM竞价推广中遇到的4大难题
- RGB,ARGB颜色值的表示表示
- r语言中检测异常值_R中的异常值检测
- ajaxPro.dll基础教程
- 手机ZTE中兴U802 U807手机解锁图案忘了 如何处理
- 史蒂芬·金《肖申克的救赎》读后感
- intel android haxm,使用Intel HAXM为Android模拟器加速,媲美真机
- 《小群效应》徐志斌踢馆,分享疫情下的私域流量新机遇
- 华为OD机试-优先级打印机
- Excel中使用填充命令填充数据的方法
- 如何在windows xp[ 下使用自带的播放器播放 mp4、AVI视频
热门文章
- java while do循环_c语言中,while 和 do while 循环的主要区别是( )
- go语言io reader_go语言之IO操作(待补充)
- C++实现具有[数组]相似特征的类DoubleSubscriptArray
- [蓝桥杯2015决赛]奇怪的数列-双指针+模拟
- linux权限746,linux文件权限学习笔一
- python获取文件夹下文件_Python 获取目录下的文件列表与内容
- Jira更换mysql数据库_JIRA6.0更换数据库到MYSQL
- Georgia and Bob(Poj 1704)Nim 博弈
- E:Three Blocks Palindrome(hard and easy)(树状数组 ? 前缀和?)
- Pool construction UVA - 1515 最小割模型