`
slbszq
  • 浏览: 267848 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Oracle参数变量类型

阅读更多

 

Oracle参数变量类型

 

1.在编写pl/sql程序时,可以定义变量常量;在pl/sql程序中包括有:

a.标量类型(scalar)

b.复合类型(composite)

c.参照类型(reference)

d.lob(large object)

 

1) 标量(scalar)——常用类型

在编写pl/sql块时,如果要使用变量,需在定义部分定义变量。pl/sql中定义变量和常量的语法如下:

identifier [constant] datatype [not null] [:=| default expr]

identifier:名称

constant:指定常量。需要指定它的初始值,且其值是不能改变的

datatype:数据类型

not null:指定变量值不能为null

:=给变量或是常量指定初始值

default用于指定初始值

expr:指定初始值的pl/sql表达式,可以是文本值、其它变量、函数等。

 

标量定义的案例

1.定义一个变长字符串

v_ename varchar2(10);

2.定义一个小数,范围 -9999.99~9999.99

v_sal number(6,2);

3.定义一个小数并给一个初始值5.4 :=pl/sql的赋值号

v_sal2 number(6,2):=5.4;

4.定义一个日期类型的数据

v_hiredate date;

5.定义一个布尔变量,不能为空,初始值为false

v_valid boolean not null default false;

6.使用%type类型表名.字段名%type

v_ename emp.ename%type;

 

2) 复合变量(composite)——介绍

用于存放多个值的变量。主要包括这几种:

1.pl/sql记录

2.pl/sql

3.嵌套表

4.varray

 

a. 复合类型——pl/sql记录

  

type emp_record_type is record(
    name emp.ename%type,
    salary emp.sal%type,
    title emp.job%type
  );
  v_emp_record emp_record_type;

  

b. 复合类型-pl/sql

相当于高级语言中的数组,但是需要注意的是在高级语言中数组的下标不能为负数,而pl/sql可以为负数的,并且表元素的下标没有限制。实例如下:

 

declare
  type record_type is record(
    name emp.ename%type,
    salary emp.sal%type,
    title emp.job%type
  );
  type record_table_type is table of record_type
  index by binary_integer;
  v_record_table record_table_type;
begin
  select ename, sal, job into v_record_table(-1) from emp where empno = 7788;
  dbms_output.put_line('姓名:' || v_record_table(-1).name
  || ' 工资:' || v_record_table(-1).salary);
end;

  

3) 参照变量——ref cursor游标变量

使用游标时,当定义游标时不需要指定相应的select语句,但是当使用游标时(open时)需要指定select语句,这样一个游标就与一个select语句结合了。

-- 定义游标类型 ref cursor 取指定部门的所有员工的姓名和工资
declare
  type cursor_type is ref cursor;
  v_cursor_test cursor_type;
  v_ename emp.ename%type;
  v_sal emp.sal%type;
begin
  open v_cursor_test for select ename, sal from emp where deptno = &no;
  --循环取出数据并显示
  loop
    fetch v_cursor_test into v_ename, v_sal;
    exit when v_cursor_test%notfound;
    dbms_output.put_line('姓名:' || v_ename || ' 工资:' || v_sal);
  end loop;
end;

 

分享到:
评论

相关推荐

    Oracle表类型表变量使用

    表类型是一种自定义的数据类型,它可以像普通数据库表一样存储数据,但存在于PL/SQL环境中。创建表类型的语法如下: ```sql CREATE TYPE <type_name> AS TABLE OF [ [ PRIMARY KEY (column_name) ] | UNIQUE ...

    Oracle与.Net 数据类型映射

    了解Oracle数据库与.NET数据类型的映射关系对于开发人员来说至关重要,这直接影响到数据的正确存储、检索和处理。以下是对"Oracle与.Net 数据类型映射"这一主题的详细解释。 首先,Oracle数据库提供了一系列的数据...

    oracle实现带参数视图

    这个过程接受一个 `VARCHAR2` 类型的参数 `pv`,并将其赋值给包内的变量 `v`。 2. **函数 `get_pv`**:用于获取参数值。这个函数返回包内的变量 `v` 的当前值。 接下来,我们基于此包创建一个视图 `v_emp`,其定义...

    sqlserver-oracle 数据类型对照

    本文将详细比较SQL Server和Oracle数据库之间的数据类型对应以及常用函数的转换。 首先,我们来看SQL Server和Oracle的数据类型对照: 1. **数值类型**: - `bigint`在SQL Server中对应Oracle的`NUMBER(19)`,...

    Oracle的数据类型

    ### Oracle 数据类型详解 #### 一、概述 Oracle 数据库是一种广泛使用的数据库管理系统,它支持多种数据类型以满足不同业务场景的需求。数据类型的选择对于确保数据的准确存储和高效处理至关重要。本文将详细介绍 ...

    ORACLE 自动类型转换

    例如,当一个数字与字符串进行比较时,Oracle会尝试将字符串转换为数字,或者在存储过程中,如果参数的数据类型与变量不匹配,Oracle会尝试自动转换。 2. **显示转换**:另一种转换方式是通过显式使用CAST或TO_CHAR...

    Oracle数据库之C#中调用示例Oracle自定义类型(自定义Object对象)

    C#调用Oracle自定义类型存储过程,Oracle存储入参为type类型,对于不熟悉Oracle朋友,可以参考来调用。实现思路和正常调MSSQL一样,先建立连接,再定义一个IOracleCustomType的类,然后Oracle.DataAccess.dll的...

    ado.net操作oracle简单参数化sql操作

    // 定义参数"ID",类型为整型 cmd.Parameters["id"].Value = yourInputId; // 设置参数值 ``` 现在,可以使用OracleCommand对象的ExecuteReader方法来执行查询并获取结果集: ```csharp OracleDataReader reader ...

    linux下oracle参数设置

    ### Linux 下 Oracle 参数设置详解 #### 一、引言 在 Oracle 数据库的部署过程中,合理的操作系统内核参数设置对于确保数据库性能至关重要。虽然 Oracle 官方提供了不同平台下的数据库安装指南,其中包含了一些系统...

    Oracle数据类型说明

    ### Oracle 数据类型详解 #### 一、概述 Oracle 数据库提供了丰富的数据类型,这些类型能够满足各种业务场景的需求。在数据库设计中合理选择数据类型对于提高数据库性能、减少存储空间和确保数据一致性等方面都至...

    ORACLE EXPDPIMPDP 参数详解

    ORACLE EXPDP/IMPDP 参数详解 ORACLE EXPDP/IMPDP 是 Oracle 数据库中用于数据泵导出导入的工具,分别对应 EXP 和 IMP 工具。EXPDP/IMPDP 的出现使得 DBA 或开发人员可以将数据库元数据(对象定义)和数据快速移动...

    Oracle参数文件PFILE和SPFILE介绍

    Oracle数据库系统中,参数文件是配置数据库运行方式的关键组件,主要分为PFILE(初始化参数文件)和SPFILE(服务参数文件)。这两种类型的参数文件各有特点,适用于不同的管理和操作场景。 一、PFILE(初始化参数...

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

    总结起来,在Java中实现Oracle变量绑定的关键在于使用PreparedStatement,并通过其提供的`setXXX()`方法设置参数。这样做不仅可以提升SQL执行效率,降低数据库负载,还能提高代码质量和安全性。因此,在开发过程中应...

    SqlServer,Oracle数据类型,函数,导入导出对照

    - **smalldatetime**、**smallint**、**smallmoney**:SQL Server中用于节省空间的数据类型,Oracle通过调整NUMBER类型的参数来匹配。 - **sql_variant**:SQL Server中的一种特殊类型,可以存储多种数据类型,...

    Oracle定义PLSQL变量学习

    它们可以是基本数据类型,如NUMBER、VARCHAR2、DATE等,也可以是复合数据类型,如记录(Record)和表类型(Table)。定义PL/SQL变量的基本语法如下: ```sql DECLARE variable_name 数据类型; BEGIN -- 变量的...

    oracle参数类型介绍[借鉴].pdf

    Oracle提供了两种主要的配置文件类型:pfile(参数文件)和spfile(服务器配置文件),这两种文件分别有不同的特性和使用场景。 pfile,即初始化参数文件,是一种文本文件,包含了数据库实例启动时需要的所有参数...

    Oracle内存参数调优技术详解

    调整 Oracle 内存参数需要考虑多个因素,如物理内存大小、操作系统需要使用的内存、数据库是使用文件系统还是裸设备、有多少并发连接、应用是 OLTP 类型还是 OLAP 类型等。基本掌握的原则是,db_block_buffer 通常...

    Oracle 数据泵详解

    Oracle 数据泵是Oracle Database 10g及以后版本中引入的一种高效的数据迁移和备份工具,主要由EXPDP(导出)和IMPDP(导入)组成。数据泵的主要目的是实现逻辑备份与恢复,移动数据库内的对象,跨数据库迁移数据,...

    浅谈oracle 数据库的绑定变量特性及应用

    - **绑定变量的类型匹配**:确保绑定的变量值与数据库字段的数据类型一致,否则可能会导致类型转换错误。 - **绑定变量的优化问题**:在某些情况下,Oracle的优化器可能无法准确地估计使用绑定变量的SQL语句的执行...

Global site tag (gtag.js) - Google Analytics