关于plsql中的define变量以及Oracle变量分类小结
关于plsql中的define变量以及Oracle变量分类小结
2009-07-29 15:18
先记载刚困扰我的一个问题,最近学习plsql,由于所用学习书籍后面提供题目常用到define变量,但由于这一变量的使用特殊性,自己便寻思这一变量所书类别,Oracle提供的变量分类共有四类:
1)标量(scalar)类型
2)复合(composite)类型
3)参照(reference)类型
4)LOB(large object)类型
这四类中并没有与只匹配的分类,在网络上查找才发现它属于第五类(另类:))——非plsql类变量。
define变量:主要应用于SQL*pls以及类似于sql*plus的开发工具中,主要用于于用户交互。
定义格式:
define p_variable_name = 500 -- 此时直接将500 assign给p_variable_name,不会弹出对话框提示用户输入
define p_variable_name -- 变量未赋值,弹出对话框提示用户输入值
使用格式:
select department_id into v_dept from emp where employee_id=& p_variable_name;
现将网上一篇关于变量分类的总结文章转帖如下。
原贴出处:http://superman-chenzs.itpub.net/post/29327/272479
1、标量类型:
- 只能存放单个数值的变量
- 定义时,必须要指定标量的数据类型
1.1常用标量类型
(1)VARCHAR2(n)
定义可变长度的字符串
n指定字符串最大长度
n最大值是32767字节
使用时必须指定长度
当在PLSQL块钟使用该数据类型操纵VARCHAR2表列时,起数值长度不应超过4000字节
(2)CHAR(n)
定义固定长度字符串
n指定字符串的最大长度
n最大值是32767自己
使用时指定长度,若没指定,则使用默认值1
当在PLSQL块钟使用该数据类型操纵CHAR2表列时,起数值长度不应超过2000字节
(3)NUMBER(p,s)
定义固定长度的整数和浮点数
p表示精度,用于指定数字的总位数
s表示标度,用于指定小数点后的数字位数
(4)DATE
定义日期和数据数据
(5)BOOLEAN
定义布尔变量
值为:TRUE、FALSE、NULL
为PLSQL独有数据类型,表列不能采用该数据类型
NULL表示missing、inapplicable或者unknown
(6)LONG和LONG ROW
long:数据类型用于定义变长字符串,类似于VARCHAR2数据类型,但其字符串的最大长度为32760字节
long row:数据类型用于定义变长的二进制数据,其数据最大长度为32760字节
(7)BINARY_INTEGER
定义整数
数值范围-2147483647和2174483647之间
(8)BINARY_FLOAT和BINARY_DOUBLE
BINARY_FLOAT定义单精度浮点数(oracle 10g新增加)
BINAR
相关文档:
很多人都知道,Oracle的监听器一直存在着一个安全隐患,假如不设置安全措施,那么能够访问的用户就可以远程关闭监听器。
相关示例:
D:\>lsnrctl stop eygle
LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-11月-2007 10:02:40
Copyright (c) 1991, 2006, Oracle. All rights reserved.
......
Author: Rainny
Date: 2010-3-5
一,症状描述
2个节点的ORACLE 10G RAC,隔一段时间其中的一个NODE就会DOWN机。节点从CLUSTER中被驱逐。
二,诊断过程
Rac1被逐出,RAC2存活,RAC2接管了RAC1的VIP,我们来查看RAC2的相关LOG。
首先查看RAC2的告警日志:..\log\rac2\alertrac2.log:
2010-03-05 14:39:50.750
[cssd(7 ......
首先去http://metalink.oracle.com 下载相关的补丁包,因为是64位for windows的包是p6810189_10204_MSWIN-x86-64.zip,下载地址:
ftp://updates.oracle.com/6810189/p6810189_10204_MSWIN-x86-64.zip
操作如下.
(1) Oracle推荐在升级之前先做一个全库的备份;
(2) 停止所有的Oracle服务
emctl stop dbconsole
isqlplusc ......
1. 在打开Enterprise Manager Consol时报错: "找不到目标主机";
【解决方案】该问题在使用Ghost制作的系统中常见, 出错原因是Oracle中配置的主机名
和实际的主机名不一致. 解决方法如下:
(1) Enterprise Manager Consol -> 工具菜单 ->服务管理 -> Oracle Net Manager;
(2) 将"本地 ......
过程中的事务
定义过程p1
create or replace procedure p1
as
begin
insert into student values(5,'xdh','m',sysdate);
rollback;
end;
定义过程p2
create or replace procedure p2
as
begin
update student set stu_sex = 'a' where stu_id = 3;
p1;
end;
执行过程p2
exec p2;
执行完毕发现 ......