`
slbszq
  • 浏览: 264300 次
  • 性别: 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数据库之C#中调用示例Oracle自定义类型(自定义Object对象)

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

    oracle支持的数据类型

    常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 ...数据类型 参数 描述 char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)

    .net C# ORACLE带表参数存储过程

    因为.net中的除string类的数据类型外,其它类型要求手动修改UDT自动生成的类文件,本人测试了2天后,才明白要修改UDT自动生成的类文件,此功能特好用,尤其是象财务凭证中子栏的一次更新,要求一次将整张凭证更新到ORACLE,...

    Oracle数据库学习指南

    Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二章 ...50. 怎样在SQLPlus中使用 '&' 来实现自定义参数变量? 51. 怎样在查询记录时给记录加锁 52. 自动备份Oracle数据库

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

    在程序中定义变量、常量和参数时,则必须要为它们指定PL/SQL数据类型。在编写PL/SQL程序时,可以使用标量(Scalar)类型、复合(Composite)类型、参照(Reference)类型和LOB(LargeObject)类型等四种类型。在PL/...

    21天学通Oracle

    第13章 Oracle数据类型(教学视频:21分钟) 231 第14章 Oracle中的函数与表达式(教学视频:111分钟) 240 第15章 Oracle中的控制语句(教学视频:16分钟) 282 第16章 SQL查询(教学视频:55分钟) 290 第17章...

    14.Oracle自定义函数1

    一、函数的创建、调用和权限1、创建函数create or replace function 函数名(参数1 模式 数据类型,) return 数据类型as --

    访问Oracle的公共登录模块

    全局变量gsDBName字符串类型,数据库别名,使用数据集(table和query)时用于设置其DatabaseName属性 如:table1.databasename:=gsDBName; 全局变量 gsStoreUserName存储系统数据的ORACLE用户名 3. 此窗体单元...

    Oracle11g从入门到精通2

    9.4.1 采用正确的数据类型 9.4.2 存储参数的正确设置 9.4.3 定期回收无用表空间 9.4.4 归档历史表空间 第10章 备份与恢复机制 10.1 备份与恢复的方法 10.2 使用数据泵进行逻辑备份和恢复 10.2.1 使用...

    oracle10g课堂练习I(1)

    指定表中的数据类型 7-8 创建和修改表 7-11 了解数据完整性 7-13 定义约束条件 7-15 违反约束条件 7-16 约束条件状态 7-17 约束条件检查 7-19 使用 SQL 创建约束条件:示例 7-20 查看表中的列 7-21 查看表...

    oracle学习日志总结

    1. 采用共享sql(带占位符或者参数sql). 2. 使用表别名. 3. 尽量避免反复访问同一张表或者几张表,尤其是数据量大的表可考虑提取数据到临时表,然后做链接. ...注意存储过程中参数和数据类型的关系 。

    oracle中 sql * plus界面set 命令详解

    需要通过设置环境参数,使查询显示的数据格式呈现为报表形式,使界面更美观。这是本人学习oracle的笔记,现总结为word表格的形式,各个set命令的取值都有详细介绍。希望对初学者有所帮助。 例如: Set linesize 60 ...

    ORACLE9i_优化设计与系统调整

    §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §1.2.3 重做日志文件 26 §1.2.4 其它支持文件 26 §...

    Oracle9i的init.ora参数中文说明

    说明: 与 NLS_TIME_FORMAT 相似, 只不过它设置的是 TIMESTAMP 数据类型的默认值, 该数据类型既存储YEAR, MONTH 和 DAY 这几个日期值, 也存储 HOUR, MINUTE 和 SECOND 这几个时间值。 语法: TIMESTAMP '1997-01-31 ...

    Oracle日常维护故障定位故障排除

    5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差 6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢 7由于空间不够导致插入数据时扩展索引失败 8由于REDOLOG破坏导致数据库...

    Loadrunner-oracle连接/修改update/select用例

    提示列被截断,最后一个参数是查询结果的类型,可以再帮助中的索引输入data types, database,列出的表格中是各种变量类型的名称 static LRD_VAR_DESC NUM ={LRD_VAR_DESC_EYECAT, 10, 32, LRD_DBTYPE_ORACLE, {1, ...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     4.2.4 数据类型  4.2.5 集合API方法  4.3 流程控制  4.3.1条件控制  4.3.2 循环控制  4.3.3 顺序控制  4.4 游标  4.4.1显式游标  4.4.2 隐式游标  4.4.3 游标FOR循环  4.4.4 使用游标更新或...

    Oracle数据库管理员技术指南

    2.1.20 怎样查找每个数据块的可用数据 区域 2.2 管理程序对象 2.2.1 怎样检查无效对象 2.2.2 怎样重新编译无效对象 2.2.3 在不同表空间之间移动索引 2.2.4 怎样查找最高点 2.2.5 怎样释放未用空间 2.3 DBMS_...

    Oracle DBA workshop1 (中文版)

    指定表中的数据类型7-8 创建和修改表7-11 了解数据完整性7-13 定义约束条件7-15 违反约束条件7-16 约束条件状态7-17 约束条件检查7-19 使用SQL 创建约束条件:示例7-20 查看表中的列7-21 查看表的内容7-22 表操作7-...

Global site tag (gtag.js) - Google Analytics