`

oracle变量

阅读更多
--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(6primary 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变量
分享到:
评论

相关推荐

    在Java中实现Oracle变量的绑定方法 .doc

    在Java中实现Oracle变量的绑定方法,主要是为了优化SQL语句的执行效率,减少数据库解析负担,提升系统性能。Oracle数据库在处理SQL语句时,会先进行解析,然后将解析后的SQL语句存储在共享池(Shared Pool)中。如果...

    oracle变量的总结

    ### Oracle变量的总结 在Oracle数据库管理中,变量的使用是一项基本且重要的技能。通过合理的变量定义与使用,可以极大提升SQL脚本的灵活性与可维护性。本文将围绕Oracle中的变量定义、类型以及如何在实际操作中...

    oracle变量定义详解.pdf

    Oracle 变量定义详解 Oracle 变量定义详解是 Oracle 数据库中一个非常重要的概念,它允许开发者在编写 PL/SQL 代码时,定义和使用变量,提高代码的可读性和可维护性。本文将详细介绍 Oracle 变量定义的相关知识点。...

    Oracle 变量替换 很实用的

    #### 一、Oracle变量替换的重要性及应用场景 在Oracle数据库中,变量替换是一项非常实用的功能,它允许用户在SQL查询或PL/SQL块中使用动态值来替代静态值。这种功能在编写灵活且可重用的脚本时特别有用,能够显著...

    Oracle变量定义详解.pdf

    Oracle 变量定义详解 Oracle 变量定义是指在 PL/SQL 脚本中定义和使用变量的方法。变量是用于保存计算机需要处理的数据的存储单元,为了给该变量分配适当的内存空间,还需要指定数据类型,有的数据类型还需要指定...

    Oracle变量定义详解.docx

    Oracle 变量定义详解 Oracle 变量定义是指在 PL/SQL 中定义变量的过程。变量是用于存储数据的容器,它们可以是数字、字符、日期等类型。在 Oracle 中,变量定义需要指定数据类型,以便为变量分配适当的内存空间。 ...

    Oracle变量概念详解.pdf

    "Oracle 变量概念详解" Oracle 变量概念是指在 Oracle 中定义和使用变量来存储和操作数据的机制。变量是 Oracle 中的一种数据类型,用于存储和操作数据。变量可以分为标量变量和复合变量两种。 一、标量变量 标量...

    oracle变量定义详解.docx

    在 Oracle 数据库中,变量是存储数据的容器,它们在 PL/SQL 程序块(如过程、函数和匿名块)中广泛使用。理解如何正确地定义和使用变量是编写高效、健壮的 Oracle 应用程序的关键。本文将深入解析 Oracle 变量的定义...

    oracle变量绑定[文].pdf

    Oracle变量绑定是数据库优化的重要策略,尤其是在Java编程中与Oracle数据库交互时。它涉及到SQL语句的编写方式,以提高数据库性能,减少资源消耗。在Java中,如果SQL语句直接包含硬编码的常量,会导致一系列问题。 ...

    深入ORACLE变量的定义与使用的详解

    本篇文章是对ORACLE变量的定义与使用进行了详细的分析与介绍,需要的朋友参考下

    linux-oracle环境变量及自启动脚本

    在Linux系统中,Oracle数据库的运行依赖于一系列的环境变量设置和自启动脚本的配置。这些要素确保了数据库服务的稳定性和可管理性。本文将深入探讨与"linux-oracle环境变量及自启动脚本"相关的知识点。 一、Oracle...

    安装oracle数据库的环境变量设置

    ### 安装Oracle数据库的环境变量设置 在安装与配置Oracle数据库的过程中,正确设置环境变量是非常重要的一步。这些环境变量不仅影响着Oracle数据库的安装过程,还直接影响到数据库的正常运行与性能表现。本文将根据...

    Oracle定义PLSQL变量学习

    本篇文章将深入探讨Oracle PL/SQL变量的定义及其在存储过程、触发器和函数中的应用。 一、PL/SQL变量的定义 在PL/SQL中,变量是用来存储数据的容器。它们可以是基本数据类型,如NUMBER、VARCHAR2、DATE等,也可以...

    Oracle脚本变量使用示例

    了解如何在Oracle脚本中使用变量是提升效率的关键。本篇将深入讲解Oracle脚本中的变量使用,通过实例来帮助你更好地理解和应用。 1. **变量声明** 在Oracle中,变量在PL/SQL块内进行声明。基本格式如下: ```sql ...

    Oracle数据库环境变量的设置

    ### Oracle数据库环境变量的设置 #### 一、引言 在安装并配置Oracle数据库的过程中,正确设置环境变量是非常重要的一步。环境变量可以帮助操作系统找到Oracle的相关组件,并确保能够顺利地使用Oracle的各种工具和...

    Oracle表类型表变量使用

    在Oracle数据库系统中,表类型和表变量是高级PL/SQL编程的重要组成部分,它们提供了在存储过程、函数和触发器中处理数据集的有效方式。本文将深入探讨Oracle表类型表变量的使用,以及如何通过提供的SQL脚本进行实践...

    oracle biee变量总结

    ### Oracle BIEE 变量总结与应用 #### 一、引言 Oracle Business Intelligence Enterprise Edition (BIEE) 是一款强大的商业智能工具,能够帮助组织机构从数据中提取价值并做出更好的决策。在 BIEE 的开发过程中,...

    定义并使用变量,复合类型

    在Oracle的PL/SQL编程中,变量和复合类型的使用是至关重要的。首先,我们要了解变量的基本概念。变量是用来存储数据的容器,在PL/SQL中,我们可以定义不同类型的变量,包括标量类型、复合类型和参照类型等。 标量...

    oracle 11g环境变量配置

    oracle 11g环境变量配置 添加一个环境变量, 名为TNS_ADMIN, 值为tnsnames.ora文件所在路径。 比如我的本机为:D:\instantclient_11_2\network\admin 4、设置ORACLE的语言,添加环境变量NLS_LANG ,值为SIMPLIFIED ...

Global site tag (gtag.js) - Google Analytics