Oracle学习笔记——提取数据三
摘要:4、Select .... For Update。 在Select语句后面加一个For Update作用是加一个更新行级锁,这样的读取操作就和更新操作一样了,都会给特定的行加锁了,这样你操作的时候,别人是没法更新这些数据的,不过也可以读取,For Update 后面可以加Of +对应的字段,在Of 出现的字段对应的表的就会加上行锁,也可以在For Update后加 NoWAIT关键字,意思就是值,当别人已经占有该行数据的时候,不需要等待直接返回,也可以在For UPdate 后加 Wait +最大秒数,值得是如果别人占用了,最多等待多久返回。如:Select w.task,w.expecte.
阅读全文
posted @
2013-08-01 11:10
Kelly_HanShuai
阅读(173)
推荐(0)
Oracle学习笔记——提取数据二
摘要:3、显式游标。1)、声明显式游标: CURSOR cursor_name [([parameter,....)]--参数列表 [Return return_specification]------可选的Return子句 IS Select_statement -----任意有效的SQL Select语句 [For Update [OF [column_list]]];如:不带参数的游标:Cursor company_cur is Select Company_id from Company; 带参数的游标:Cursor name_cur (company_id_in In Num...
阅读全文
posted @
2013-07-30 14:14
Kelly_HanShuai
阅读(150)
推荐(0)
Oracle学习笔记——提取数据一
摘要:1、游标基础。1)、一些有关数据提取的术语:静态SQL:一个SQL语句在所在的块被编译的时候,就固定了,这样的SQL就是静态的SQL。(编译的时候就被构造出来)动态SQL:一个SQL语句在被执行的时候才被构造出来的SQL语句就是动态SQL。(执行的时候被构造出来)结果集:SQL语句所请求的行集的合。结果集在Oracle中都是被缓存在SGA区域中的。隐式游标:当执行一个SQL DML语句(Insert、update、merge、Delete语句)或Select Into语句,PL/SQL都会声明一个隐式游标来指向对应的SQL语句执行结果,之所以是隐式的是因为数据库把游标的大部分操作都自动执行了,
阅读全文
posted @
2013-07-30 09:21
Kelly_HanShuai
阅读(793)
推荐(0)
Oracle学习笔记——DML和事务管理
摘要:1、PL/SQL中的DML。1)、DML语句的快速入门: DML语句有四种:Insert、Update、Delete、Merge,其中Insert、Update和Delete里和SQL server一样,不多说了,这里的Merge的意思是“插入更新”的操作,即插入的时候,如果记录存在就更新,不存在就插入。2)、DML操作的游标属性: SQL%FOUND :如果有一行或多行记录被成功修改(包括创建、修改、删除)返回True。 SQL%NOTFOUND:如果DML语句没有修改任何行则返回True。 SQL%ROWCOUNT:返回DML语句修改的记录行数。 举例用法: begin up...
阅读全文
posted @
2013-07-24 14:28
Kelly_HanShuai
阅读(168)
推荐(0)
Oracle学习笔记——集合四
摘要:3.3)、用数据填充集合: 就是对集合中的元素赋值,需要注意的是,关联数组里的索引是乱写的,只要在范围负的2的31次方到正的2的31次方减去1,赋值包括创建元素,然后再该索引处保存值;而嵌套表和Varray的索引是单调递增的,是由PL/SQL引擎赋值的,比如说,如果初始化了n个元素,下标就是从1到n,Extend方法对嵌套表或者Varray类型进行扩展后就可以对其元素赋值。 示例:countdown_test_list(50):='Interenal pressure'; 关联数组由于它的索引值是没有规律的,但是根据不同Index by 类别,有不同的索引取值范围: Index
阅读全文
posted @
2013-07-18 08:22
Kelly_HanShuai
阅读(103)
推荐(0)
Oracle学习笔记——集合三
摘要:3、使用集合。1)、声明集合类型: a、声明关联数组集合类型: Type table_type_name Is Table Of DataType [not null] Index by index_type; 其中table_type_name代表创建的集合类型名称,datatype是集合中元素的类型,index_type用来组织集合内容的索引的数据类型,not null代表集合中每一行必须有值。 DataType集合元素的类型可以是标量数据类型(任何被PL/SQL支持的标量数据类型,如Varchar2,Clob,Positive,Date或者Boolean)、锚定数据类型(数据库表...
阅读全文
posted @
2013-07-08 11:07
Kelly_HanShuai
阅读(137)
推荐(0)
Oracle学习笔记——集合二
摘要:2、集合方法(内置)1)、count函数:计算一个关联数组、嵌套表和VARRAY中定义的元素的数量,count函数不会计算已经被DELETE或TRIM操作移除的元素。 注意:count的函数用于未初始化的嵌套表和VARRAY类型时,会报异常,因为未初始化的嵌套表和VARRAY不能使用。 如: var_name.count;2)、DELETE方法: 从一个关联数组、嵌套表和VARRAY中删除一个、一批或全部元素的函数。对于VARRAY类型只能删除全部的。 如:Delete(i)删除嵌套表或关联数组的中的第i元素。 Delete不带参数,代表删除全部的元素。 Delete(i,...
阅读全文
posted @
2013-07-05 15:59
Kelly_HanShuai
阅读(132)
推荐(0)
Oracle学习笔记——集合一
摘要:1、集合概述。1)、集合概念和术语: 元素和索引值:集合是由若干个元素组成,集合中的元素有时候会称之为“行”,所以对应的索引值称为“行号”; 集合类型:分为三种,关联数组、嵌套表、Varray。 集合或集合实例:术语“集合”可能代表一个关联数组、嵌套表或者varray类型的PL/SQL变量,或者代表一个嵌套表或Varray类型的数据列。 集合实例就是一个特定集合的实例。 同质元素:集合中的所有元素都是相同类型的,所以称为同质的。集合中的元素类型可以是复合或者复杂的数据类型,也可以是一个集合。 一维或者单维:一个集合中的每一行总是只有一列,类似于一维数组。 无界对有...
阅读全文
posted @
2013-07-05 11:25
Kelly_HanShuai
阅读(142)
推荐(0)
Oracle学习笔记——记录类型
摘要:记录类型就是相当于数据库中表的行,记录提供了一种把这些值当做一组进行操作的方法。1、PL/SQL中的记录。 根据表创建记录的方式: var_name table_name%ROWTYPE,其中var_name变量名,table_name 表名。 赋值:select * into var_name from table_name where ...1)、使用记录的好处: 数据抽象:记录抽象所代表的主体的不同属性或字段进行抽象化。 操作集合:操作纪律,就相当于操作整块数据的操作。2)、声明记录: a、基于表的记录类型:表名+%ROWTYPE。代表表的一行所有列的数据。 b、...
阅读全文
posted @
2013-07-04 09:32
Kelly_HanShuai
阅读(612)
推荐(0)
Oracle学习笔记——日期和时间戳二
摘要:4、日期时间转换。1)、从字符串到日期: To_Date(string,[format_mask],[nls_language]),把一个字符串转换成Data类型值,如:To_Date('12/25/2005','mm/dd/yyyy')。 To_Date(number,[format_mask],[nls_language]),把一个Julian日期的数字转换为Date类型,如: To_TimeStamp(string,[format_mask],[nls_language]),把字符串转换为TimeStamp类型。如:To_TimeStamp('06
阅读全文
posted @
2013-07-03 09:15
Kelly_HanShuai
阅读(394)
推荐(0)
Oracle学习笔记——日期和时间戳一
摘要:1、DateTime数据类型。 Date类型:存储日期和时间,精确到秒,不带时区信息。 TimeStamp类型:存储日期和时间,精确到十亿分之一秒(小数点后9位),不带时区信息。 TimeStamp With Time Zone类型:存储时区、日期和时间,精确到小数点后9位。 TimeStamp with local time Zone 类型:保存日期和精确到小数点9位的时间,对时区敏感,这个类型的值会自动在数据库所在的时区及当地(会话端)之间转化,当这个值保存到数据库中时也会转化为数据库时区,而不是保存本地时区,当从数据库提取的时候,也会自动转化为本地时区。1)、声明日期时间变量:v...
阅读全文
posted @
2013-07-01 15:47
Kelly_HanShuai
阅读(288)
推荐(0)
Oracle学习笔记——数字二
摘要:2、数字转换。1)、To_Number函数: To_Number(string,formate[,nls_params]),其中string代表字符串或包含数字表现形式的Binary_double 表达式。 a、不带格式的To_number:To_number('+12345789'),To_Number('1.25E2'),To_Binary_double('inf')---无穷大,To_Binary_double('NAN')--不是一个数字,这几种格式都可以转换成功。 b、带格式的To_Number:To_Number(
阅读全文
posted @
2013-07-01 11:22
Kelly_HanShuai
阅读(266)
推荐(0)
Oracle学习笔记——数字一
摘要:1、数值型数字类型。1)、Number类型: Number取值范围正的是10的-130次方到10的126次方减1。即:(1.0E-130) 到 (1.0E126-1)。 定义的时候有几种形式: a、直接number,就是number类型的整个取值范围。 b、number(precision,scale):precision代表数据的有效数字最大长度,scale代表小数点右边几位。 如:number(5,2),最大值为:999.99,number(3,5)最大值就是0.00999,Number(3,-2)代表,最小值就是99900,比99900小的就直接保存0了,scale正的就是小数...
阅读全文
posted @
2013-06-28 15:49
Kelly_HanShuai
阅读(178)
推荐(0)
Oracle学习笔记——字符串
摘要:1、字符串类型: 有四种字符串类型:Char、NChar、Varchar2,Nvarchar2,其中Char为固定长度的字符串类型,带'N'的为国家字符集。1)、Varchar2数据类型:可变长度的字符串,最大长度为32767字节。 声明:variable_name varchar2(max_length[CHAR | BYTE]); 说明:使用CHAR这个限定词的,最终这个字符串的字节数量是根据数据库字符集表示一个字符所使用的最大的字节数决定的,比如Unicode UTF-8字符集最多 用3个字节来表示一个字符。 如果忽略Char或者Byte限定符,长度字节计算取决于数据库.
阅读全文
posted @
2013-06-27 16:05
Kelly_HanShuai
阅读(259)
推荐(0)
Oracle学习笔记——使用数据二
摘要:3、程序数据的声明。1)、声明一个变量: 基本语法:name datatype [not null] [:=| default default_assignment]; name代表变量名,datatype变量类型,not null代表不可以为空,为空会抛出异常,所以必须赋值的,最后一个default_assignment用来赋初始化值的。 如:l_right_flavor varchar2(100) :='Any thing with chocolate,actually'; l_right_now date not null default sysdate;--定义一个默认
阅读全文
posted @
2013-06-27 09:51
Kelly_HanShuai
阅读(106)
推荐(0)
Oracle学习笔记——使用数据一
摘要:1、程序数据的命名。1)、命名规则:a、名字的长度最长为30个字符。b、名字必须以字母开头。c、第一个字母以后可以使用的字符包括字母、数字、$、#、_。d、所有名字不区分大小写。2)、保证每个名字都能准确的反映它的用途并且一望既知,所有在开发的时候,需要建立一致的、明显的命名规范。2、PL/SQL数据类型概述。1)、PL/SQL中所有预先定义好的数据类型都在Standard包中定义的。2)、字符数据:Char和NChar类型,单字符类型,varchar2和nvarchar2可变长度的数据类型。3)、数字: a、Number数值型,可以用来表示小数、浮点型、整数。number(9,2)--小数.
阅读全文
posted @
2013-06-27 09:03
Kelly_HanShuai
阅读(129)
推荐(0)