Oracle变量定义的三种方式definevariabledeclare.docx

上传人:b****5 文档编号:27575629 上传时间:2023-07-03 格式:DOCX 页数:13 大小:16.86KB
下载 相关 举报
Oracle变量定义的三种方式definevariabledeclare.docx_第1页
第1页 / 共13页
Oracle变量定义的三种方式definevariabledeclare.docx_第2页
第2页 / 共13页
Oracle变量定义的三种方式definevariabledeclare.docx_第3页
第3页 / 共13页
Oracle变量定义的三种方式definevariabledeclare.docx_第4页
第4页 / 共13页
Oracle变量定义的三种方式definevariabledeclare.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Oracle变量定义的三种方式definevariabledeclare.docx

《Oracle变量定义的三种方式definevariabledeclare.docx》由会员分享,可在线阅读,更多相关《Oracle变量定义的三种方式definevariabledeclare.docx(13页珍藏版)》请在冰豆网上搜索。

Oracle变量定义的三种方式definevariabledeclare.docx

Oracle变量定义的三种方式definevariabledeclare

1、define(即host变量)

Host变量主要作用是起到一个替代变量的作用,是主机环境可以和oracle进行交互的一个媒介。

通过define定义host变量的时候必须指定变量名和变量的值,如果变量名已经存在于host变量中,则自动覆盖,这个值不可以指定类型,一律按char存储。

DEFINE变量只在当前session环境中有效。

(1).语法:

definevariable_name=value

 

(2).声明和初始化DEFINE变量

//声明define变量的时候必须同时初始化赋值变量

SQL>definenum=1;

另外可以使用define命令显示单个(definevariable_name,不能显示多个)或全部(define)的host变量的值和类型(类型都是char)。

(3).显示指定的DEFINE变量值和类型

//使用definedef_name命令显示指定DEFINE变量

//的值和类型(DEFINE变量类型都为char)

SQL>definenum;

DEFINEnum             ="1"(CHAR)

(4).显示所有的DEFINE变量值和类型

//使用define显示所有DEFINE变量的值和类型(DEFINE变量类型都为char)

SQL>define

DEFINE_CONNECT_IDENTIFIER="TOPPROD"(CHAR)

DEFINE_SQLPLUS_RELEASE="902000100"(CHAR)

DEFINE_EDITOR        ="Notepad"(CHAR)

DEFINE_O_VERSION     ="OracleDatabase11gEnterpriseEditionRelease11.2.0.3.0-64bitProducti

WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions"(CHAR)

DEFINE_O_RELEASE     ="1102000300"(CHAR)

了解对于host变量启用和关闭的命令是:

setdefineon和setdefineoff。

(5).关闭DEFINE变量定义功能

//关闭define

SQL>setdefineoff;

SQL>definenum=1;

SQL>select*fromocc_filewhererownum=#

 

select*fromocc_filewhererownum=&num

 

ORA-01008:

并非所有变量都已绑定

(6).开启DEFINE变量定义功能

//打开define

SQL>setdefineon;

SQL>definenum=1;

SQL>select*fromocc_filewhererownum=#

 

OCC01     OCC02

-------------------------

020040    松荣五金-SRWJ

(7).引用DEFINE变量

这在sqlplus和plsqldeveloper的commandwindow中都可以使用,在sql或plsql中引用host变量,使用&符号,相当于一个简单的替换动作,比如

//错误案例

SQL>definex=occ_file;

SQL>select*from'&x'whererownum=1;

 

select*from'occ_file'whererownum=1

 

ORA-00903:

表名无效

SQL>

报错是因为x被替换为occ_file,语句变为select*from’occ_file’,’occ_file’表是不存在的,多了个单引号。

//正确案例

SQL>definex=occ_file;

SQL>select*from&xwhererownum=1;

OCC01OCC02

-------------------------

020040松荣五金-SRWJ

SQL>

 

(8).引用临时DEFINE变量

可以不预先声明初始化define变量,直接在sql或plsql中在字符串前面加&符号,会提示你输入变量的值,然后替换。

这种情况下是临时的变量,define命令查不到

//不预先声明和初始化define变量直接使用&引用

 

SQL>select*from&ywhererownum=1;

 

//弹框提示输入变量y的值,输入occ_file,后打印出一下信息

 

OCC01     OCC02

-------------------------

020040    松荣五金-SRWJ

 

SQL>

经常使用host变量的场合是在写脚本的时候,脚本的有些地方经常变化,其他地方固定,那么可以使用&引用。

2、Variable(即邦定变量)

绑定变量主要是在sql中使用,达到sql解析一次,执行多次,从而提高效率的目的。

绑定变量和host变量一样,也有定义的,也有临时性的。

(临时性的在动态sql或动态plsql中通过占位符和using使用),其他的如sql会自动使用绑定变量的情况,此处不专门讨论。

定义的绑定变量也是在当前session中有效。

绑定变量以下特点:

绑定变量在sql和plsql中直接引用必须加前缀:

如要引用绑定变量a,则是:

a;

在真正运行的PLSQL程序中,比如自动运行,有自己的一套机制;

初始化和应用绑定变量,初始化定义的绑定变量,可以使用过程和函数,其中过程可以内部给绑定变量赋值、也可以参数是绑定变量,参数模式为out返回。

使用函数和过程差不多,还可以使用call

函数来赋值。

sqlplus中可以使用大于等于3个字符表示一个命令,这里我们用var,var命令是声明一个绑定变量,只能给予名称和类型,定义的时候不能赋值,赋值可以在plsql中或者采用函数赋值(而host变量定义的时候必须赋值)。

(1).语法:

varvar_nametype

(2).声明绑定变量

//使用var声明两number类型的变量num1、num2

SQL>varnum1number;

SQL>varnum2number;

 

(3).显示指定绑定变量

//varnum1命令显示指定绑定变量名称、数据类型

SQL>varnum1

variablenum1

datatypeNUMBER

 

SQL>

(4).显示所有绑定变量

//var命令显示所有绑定变量的变量名称、数据类型

SQL>var

variablenum1

datatypeNUMBER

 

variablenum2

datatypeNUMBER

(5).使用PL/SQL初始化绑定变量

//给绑定变量赋值

SQL>begin

:

num1:

=1;

:

num2:

=2;

end;

/

 

PL/SQLproceduresuccessfullycompleted

num1

---------

1

num2

---------

2

 

SQL>

(6).使用EXECUTE初始化绑定变量

//使用execute初始化,初始化多个用分号隔开

SQL>exec:

num1:

=1;:

num2:

=2

 

PL/SQLproceduresuccessfullycompleted

num1

---------

1

num2

---------

2

 

SQL>

(7).显示指定的绑定变量的值

//使用printvar_name命令输出指定的绑定变量值

SQL>printnum1;

num1

---------

1

 

SQL>printnum2;

num2

---------

2

(8).显示所有绑定变量的值

//print命令输出所有绑定变量的值

SQL>print

num1

---------

1

 

num2

---------

2

 

SQL>

(9).引用绑定变量

//使用:

var_name引用绑定变量

SQL>select:

num1fromdual;

 

:

NUM1

----------

1

num1

---------

1

 

SQL>

(10).存储过程初始化绑定变量

//声明绑定变量m

SQL>varmnumber;

 

//创建一个带输出参数的存储过程test_pro

SQL>createorreplaceproceduretest_pro(numoutnumber)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1