`
- 浏览:
116343 次
- 性别:
- 来自:
上海
-
--1定义标量变量
--(1)定义语法
变量名 [constant] 数据类型 [not null] [:= | default expr]
-- constant:用于指定常量。必须指定初始值
-- := 用于为变量和常量指定初始值
-- expr初始值的pl/sql表达式,可以是文本值、变量、函数等
--示例1:
v_name varchar2(10);
v_rate constant number(3,2) := 5.5;
v_valid boolean not null default false;
--(2)使用
--变量赋值使用等号前加冒号(:=)
--示例2:
declare
v_name varchar2(10);
v_money number(6,2);
c_tax_rate constant number(3,2) := -0.03;
v_tax_money number(6,2);
begin
select user_name,game_money into v_name,v_money
from user_info where user_id = 100000;
v_tax_money := v_money*c_tax_rate;
dbms_output.put_line('name:'||v_name);
dbms_output.put_line('money:'||v_money);
dbms_output.put_line('rate:'||v_tax_money);
end
--(3)使用%TYPE属性
v_name user_info.user_name%TYPE;
v_money user_info.game_money%TYPE;
c_tax_rate constant number(3,2) := -0.03;
v_tax_money v_money%TYPE;
--变量v_name,v_money与user_info表的user_name,game_money列的类型和长度完全一致
--变量v_tax_money与变是v_money的类型和长度完全一致

--2复合变量
--(1)pl/sql记录(类似于结构)
-- 在定义部分定义记录类型和记录变量,在执行部分引用该记录变量
-- 引用记录成员时必须要加记录变量作为前缀(记录变量。记录成员)
--示例3:
declare
TYPE record_type IS RECORD(
v_name user_info.user_name%TYPE,
v_money user_info.game_money%TYPE
);
emp_record record_type;
begin
select user_name,game_money into emp_record
from user_info where user_id = 100000;
dbms_output.put_line('name:'||emp_record.v_name);
dbms_output.put_line('money:'||emp_record.v_money);
end
--(2)pl/sql表(类似于数组)
-- pl/sql表与数组区别:下标没有上下限,个数年没有限制,下票可以为负值
-- 必须先在定义部分定义pl/sql表类型和pl/sql表变量,在执行部分引用该pl/sql表变量
--示例4:
declare
TYPE name_table_type IS TABLE OF user_info.user_name%TYPE
INDEX BY BINARY_INTEGER;
v_name name_table_type;
begin
select user_name into v_name(-1)
from user_info where user_id = 100000;
dbms_output.put_line('name:'||v_name(-1));
end
--(3)嵌套表
--(4)VARRAY(变长数组)

--3 参照变量
-- 用于存放数值指针的变量。
--(1)游标变量(REF CURSOR)
-- 静态游标:需要在定义游标时指定相应的select语句
-- 示例5:
declare
type c1 is ref cursor;--c1为ref cursor类型
emp_cursor c1;--emp_cursor为游标变量
v_name user_info.user_name%TYPE;
v_money user_info.game_money%TYPE;
begin
open emp_cursor for --打开游标变量时指定了对应的select语句
select user_name,game_money from user_info where user_id = 100000;
loop
fetch emp_cursor into v_name,v_money;
exit when emp_cursor%notfound;
dbms_output.put_line(v_name);
end loop;
end;
-- 动态游标:在定义游标变量时不要需指定相应的select语句,而是打开游标时指定select语句
--(2)对象类型变量(REF obj_type)
-- 是指向对象实例的指针
-- 示例6:
create or replace type home_type as object(--建立对象类型
street varchar2(50),city varchar2(20),
state varchar2(20),zipcode varchar2(6),
owner varchar2(10)
);
create table homes of home_type;--建表
insert into homes values('上海路100号','上海','200000','junly');
commit;
--对象表homes存放家庭地址及户主姓名,如每个家庭有四口人,为了同一家庭成员共享家庭地址,
--可使用REF引用home_type对象类型,从而降低占用空间。
create table person(
id number(6) primary key,
name varchar2(10),
addr ref home_type
);
insert into person select 1,'junly',ref(p) from homes p where p.owner='junly'
insert into person select 2,'junl2',ref(p) from homes p where p.owner='junly'
--person表插入数据时,addr列将存入指向homes表相应数据的地址指针

--4 LOB变量

/**//*用于存储大批量数据的变量
(1)内部LOB
CLOB 支技事务操作 存储数据库中 用于存储大批量字符数据
BLOB 支技事务操作 存储数据库中 用于存储大批量二进制数据
NCLOB 支技事务操作 存储数据库中 用于存储大批量字符数据
(2)外部LOB
BFILE 不支技事务 存在OS文件中 存储指向OS文件的指针
*/

--5非PL/SQL变量
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Java中实现Oracle变量的绑定方法,主要是为了优化SQL语句的执行效率,减少数据库解析负担,提升系统性能。Oracle数据库在处理SQL语句时,会先进行解析,然后将解析后的SQL语句存储在共享池(Shared Pool)中。如果...
### Oracle变量的总结 在Oracle数据库管理中,变量的使用是一项基本且重要的技能。通过合理的变量定义与使用,可以极大提升SQL脚本的灵活性与可维护性。本文将围绕Oracle中的变量定义、类型以及如何在实际操作中...
Oracle 变量定义详解 Oracle 变量定义详解是 Oracle 数据库中一个非常重要的概念,它允许开发者在编写 PL/SQL 代码时,定义和使用变量,提高代码的可读性和可维护性。本文将详细介绍 Oracle 变量定义的相关知识点。...
#### 一、Oracle变量替换的重要性及应用场景 在Oracle数据库中,变量替换是一项非常实用的功能,它允许用户在SQL查询或PL/SQL块中使用动态值来替代静态值。这种功能在编写灵活且可重用的脚本时特别有用,能够显著...
Oracle 变量定义详解 Oracle 变量定义是指在 PL/SQL 脚本中定义和使用变量的方法。变量是用于保存计算机需要处理的数据的存储单元,为了给该变量分配适当的内存空间,还需要指定数据类型,有的数据类型还需要指定...
Oracle 变量定义详解 Oracle 变量定义是指在 PL/SQL 中定义变量的过程。变量是用于存储数据的容器,它们可以是数字、字符、日期等类型。在 Oracle 中,变量定义需要指定数据类型,以便为变量分配适当的内存空间。 ...
"Oracle 变量概念详解" Oracle 变量概念是指在 Oracle 中定义和使用变量来存储和操作数据的机制。变量是 Oracle 中的一种数据类型,用于存储和操作数据。变量可以分为标量变量和复合变量两种。 一、标量变量 标量...
在 Oracle 数据库中,变量是存储数据的容器,它们在 PL/SQL 程序块(如过程、函数和匿名块)中广泛使用。理解如何正确地定义和使用变量是编写高效、健壮的 Oracle 应用程序的关键。本文将深入解析 Oracle 变量的定义...
Oracle变量绑定是数据库优化的重要策略,尤其是在Java编程中与Oracle数据库交互时。它涉及到SQL语句的编写方式,以提高数据库性能,减少资源消耗。在Java中,如果SQL语句直接包含硬编码的常量,会导致一系列问题。 ...
本篇文章是对ORACLE变量的定义与使用进行了详细的分析与介绍,需要的朋友参考下
在Linux系统中,Oracle数据库的运行依赖于一系列的环境变量设置和自启动脚本的配置。这些要素确保了数据库服务的稳定性和可管理性。本文将深入探讨与"linux-oracle环境变量及自启动脚本"相关的知识点。 一、Oracle...
### 安装Oracle数据库的环境变量设置 在安装与配置Oracle数据库的过程中,正确设置环境变量是非常重要的一步。这些环境变量不仅影响着Oracle数据库的安装过程,还直接影响到数据库的正常运行与性能表现。本文将根据...
本篇文章将深入探讨Oracle PL/SQL变量的定义及其在存储过程、触发器和函数中的应用。 一、PL/SQL变量的定义 在PL/SQL中,变量是用来存储数据的容器。它们可以是基本数据类型,如NUMBER、VARCHAR2、DATE等,也可以...
了解如何在Oracle脚本中使用变量是提升效率的关键。本篇将深入讲解Oracle脚本中的变量使用,通过实例来帮助你更好地理解和应用。 1. **变量声明** 在Oracle中,变量在PL/SQL块内进行声明。基本格式如下: ```sql ...
### Oracle数据库环境变量的设置 #### 一、引言 在安装并配置Oracle数据库的过程中,正确设置环境变量是非常重要的一步。环境变量可以帮助操作系统找到Oracle的相关组件,并确保能够顺利地使用Oracle的各种工具和...
在Oracle数据库系统中,表类型和表变量是高级PL/SQL编程的重要组成部分,它们提供了在存储过程、函数和触发器中处理数据集的有效方式。本文将深入探讨Oracle表类型表变量的使用,以及如何通过提供的SQL脚本进行实践...
### Oracle BIEE 变量总结与应用 #### 一、引言 Oracle Business Intelligence Enterprise Edition (BIEE) 是一款强大的商业智能工具,能够帮助组织机构从数据中提取价值并做出更好的决策。在 BIEE 的开发过程中,...
在Oracle的PL/SQL编程中,变量和复合类型的使用是至关重要的。首先,我们要了解变量的基本概念。变量是用来存储数据的容器,在PL/SQL中,我们可以定义不同类型的变量,包括标量类型、复合类型和参照类型等。 标量...
oracle 11g环境变量配置 添加一个环境变量, 名为TNS_ADMIN, 值为tnsnames.ora文件所在路径。 比如我的本机为:D:\instantclient_11_2\network\admin 4、设置ORACLE的语言,添加环境变量NLS_LANG ,值为SIMPLIFIED ...