扩大
缩小

2013年5月22日

管理表空间和数据文件——建立表空间——建立临时表空间

摘要: 1.建立本地管理临时表空间当建立本地管理临时表空间时,使用uniform选项可以指定区尺寸。注意,当建立临时表空间时,不能指定autoallocate选项。例子:create temporary tablespace temp01tempfile 'd:\orcl\temp01.dbf' size 5m uniform size 256k;2.建立大文件临时表空间从oracle10g开始,允许使用create bigfile temporary tablespace 命令建立大文件临时表空间。例子:create bigfile temporary tablespace temp 阅读全文

posted @ 2013-05-22 13:41 LinuxPanda 阅读(459) 评论(0) 推荐(0) 编辑

管理表空间和数据文件——建立表空间——建立大文件表空间和建立undo表空间和建立非标准表空间

摘要: 建立大文件表空间大文件表空间是指只能包含一个数据文件的表空间,其数据文件最大尺寸可以达到4g个数据块。若数据块尺寸为8k,则大文件表空间的数据文件尺寸最大可以达到32tb,若数据块尺寸为32k,则可以达到128tb。大文件表空间有以下好处:一个数据库最多可以包含64k个数据文件,通过使用大文件表空间,可以显著的提高数据库的存储能力。大文件表空间可以降低数据库的数据文件个数。建立大文件表空间是使用create bigfile tablespace 命令来完成的。注意:当建立大文件表空间时,不能指定extents management dictionary 和segment space manag 阅读全文

posted @ 2013-05-22 13:05 LinuxPanda 阅读(876) 评论(0) 推荐(0) 编辑

2013年5月21日

oracle Wallet的使用

摘要: oracle Wallet的使用(即内部加密技术TDE(Transparent Data Encryption ))1. TDE是Oracle10gR2中推出的一个新功能,使用时要保证Oracle版本是在10gR2或者以上--查看oracle版本:select * from v$version;2、创建一个新目录,并指定为Wallet目录D:\oracle\product\10.2.0\admin\ora10\ora_wallet3. 设置wallet目录,在参数文件sqlnet.ora中(window+f,在你安装盘区查找sqlnet.ora),按照下面的格式加入信息:ENCRYPTION_ 阅读全文

posted @ 2013-05-21 22:41 LinuxPanda 阅读(6270) 评论(1) 推荐(0) 编辑

管理表空间和数据文件——建立表空间——建立字典管理表空间和建立加密表空间

摘要: 字典管理表空间是为了与早期版本兼容而保留的空间管理特性。当使用字典管理方式时,区数据字典进行管理。注意:如果建立字典管理表空间,那么要求system表空间必须采用字典管理方式,并且建立时,需要指定extent management dictionary选项。例子:create tablespace data05datafile 'd:\orcl\data05.dbf' size 10mextent management dictionary default storage(initial 20k next 20k minextents 2 maxextents 50 pctin 阅读全文

posted @ 2013-05-21 22:38 LinuxPanda 阅读(354) 评论(0) 推荐(0) 编辑

管理表空间和数据文件——建立表空间——建立本地管理表空间

摘要: 本地管理师表空间的默认空间管理方法。当使用本地管理方式时,oracle使用位图维护空闲区的信息。本地管理表空间有以下优点:避免了递归的空间管理操作。在数据字典管理表空间上分配和释放区会导致访问undo段和数据字典基表,而在本地管理表空间上分配和释放区只需要修改其数据文件上的相应位图值。降低了数据字典基表冲突。因为本地管理表空间的空闲空间被记录在数据文件位图上,所以分配和释放区不需要访问数据字典基表。不需要合并空间碎片。本地管理表空间会自动跟踪合并相邻空闲空间,而字典管理表空间则需要定期合并空间碎片。1.使用uniform选项指定区尺寸uniform选项用于指定使用相同区尺寸建立表空间,默认尺寸 阅读全文

posted @ 2013-05-21 18:55 LinuxPanda 阅读(781) 评论(0) 推荐(0) 编辑

管理表空间和数据文件——数据库逻辑结构

摘要: 表空间是数据库的裸机组成部分。从物理上说,数据库数据存放在数据文件中;从逻辑上说,数据库数据存放在表空间中,并且表空间是由一个或多个数据文件组成的,是一对多的关系。oracle提供了一套逻辑结构来安排数据存储,这些逻辑结构包括表空间,段,取以及oracle块。1.表空间(tablespace)表空间用于逻辑组织数据库数据。数据库逻辑上由一个或多个表空间组成,而表空间物理上是有一个或多个数据文件组成的。表空间作用:通过表空间可以控制数据库所占用的磁盘空间。通过表空间可以控制用户所占用的空间配置。通过表空间,dba可以将不同类型的数据库部署到不同位置。一方面可以提高i/0性能,另一方面友谊与备份和 阅读全文

posted @ 2013-05-21 18:39 LinuxPanda 阅读(610) 评论(0) 推荐(0) 编辑

2013年5月17日

复杂查询——数据分组——分组函数

摘要: 分组函数用于统计表的数据。与单行函数不同,分组函数作用于多行,并返回一个结果,所以有时也成为多行函数。一般情况下,分组函数要要与group by 子句结合使用。注意:如果在使用分组函数时,如果忽略了groupby 子句,那么会汇总所有行,并产生一个结果。 分组函数只能出现在选择列表,orderby子句,having子句中。 当使用分组函数时,会忽略null行。 如果在选择列表既包含分组函数,也包含其他列和表达式,那么这些列或表达式必须出现groupby子句中。 当使用分组函数时,可以在函数中指定all和distinct选项。1.max和minselect max(sal... 阅读全文

posted @ 2013-05-17 22:59 LinuxPanda 阅读(449) 评论(0) 推荐(0) 编辑

2013年5月16日

数据字典和动态性能视图——常用动态性能视图

摘要: 当维护数据库,调整数据库性能时,需要经常访问动态性能视图,已取得例程的动态信息。注意:大多数动态性能视图只能有特权用户和dba用户访问。下面介绍几种常见的动态性能视图。1.v$fixed_table该动态性能视图用于列出所有的动态性能视图和动态性能表。select name from v$fixed_table where name like 'V$%';2.v$instance该动态性能视图用于取得当前例程的详细信息。select instance_name,host_name,status from v$instance;INSTANCE_NAME HOST_NAME ST 阅读全文

posted @ 2013-05-16 13:24 LinuxPanda 阅读(599) 评论(0) 推荐(0) 编辑

2013年5月15日

数据字典和动态性能视图——动态性能视图

摘要: 动态性能视图用于记录当前例程的活动信息。当启动例程时,oracle会自动建立动态性能视图;当停止例程时,oracle会自动删除动态性能视图。注意:数据字典信息是从数据文件中取得,而动态性能视图则是从sga和控制文件中取得。1.nomount当启动例程时,oracle会打开参数文件,分配sga并启动后台进程。因此,当例程处于nomount 状态时,只能访问从sga中获取信息的动态性能视图。sga可以提取的部分视图(v$parameter,v$sga,v$option,v$process,v$session,v$version,v$instance)2.mount当装载数据库时,oracle会根据 阅读全文

posted @ 2013-05-15 19:43 LinuxPanda 阅读(347) 评论(0) 推荐(1) 编辑

2013年5月14日

数据字典和动态性能视图——常用数据字典

摘要: 数据字典是oracle数据库最重要的数据库对象。当要取得数据库的系统信息时,必须要查询数据字典。下面列出常用的数据字典。1.dictdict 用于显示当前用户可访问的所有数据字典视图和动态性能视图,并给出了这些数据字典的作用。例子:查询当前用户可访问的所有与权限有关的数据字典和数据字典视图:select table_name from dict where comments like '%grant%';2.dict_columnsdict_columns 用于显示数据字典视图每个列的作用。例子:显示dict列的作用:select column_name,comments fr 阅读全文

posted @ 2013-05-14 22:36 LinuxPanda 阅读(532) 评论(0) 推荐(0) 编辑

数据字典和动态性能视图——数据字典

摘要: 数据字典记载了数据库的系统信息,数据字典的所有者为sys 用户,并且其数据被存放在system 表空间中。数据字典是只读表和视图的集合,用户只能在数据字典上执行查询操作,而其维护和修改是由系统自动完成的。数据字典视图主要包括user_xxx all_xxx dba_xxx 等三种类型。1.all_xxxall_xxx用于显示当前用户可以访问的所有对象。select owner,table_name from all_tables;2.user_xxxuser_xxx用于显示当前用户所拥有的所有对象。select table_name from user_tables;3.dba_xxxdba_ 阅读全文

posted @ 2013-05-14 22:15 LinuxPanda 阅读(265) 评论(0) 推荐(0) 编辑

启动和停止数据库——显示例程信息

摘要: 通过查询动态性能视图v$instance ,可以显示例程详细信息。其中,instance_name列用于表示例程名,host_name列用于显示例程所在主机名,status列用于表示例程当前状态,database_status列用于标示暂停、活动状态,active_active 列用于表示停顿、正常状态。select instance_name,host_name,status,database_status,active_state from v$instance;INSTANCE_NAME HOST_NAME STATUS DATABASE_STATUS ACTIVE_ST-------- 阅读全文

posted @ 2013-05-14 17:12 LinuxPanda 阅读(150) 评论(0) 推荐(0) 编辑

启动和停止数据库——停顿和暂停数据库

摘要: 1.停顿数据库停顿数据库时指将数据库转变为“停顿”状态。当数据库处于该状态时,只有dba用户(sys 和system) 可以执行事务,查询和pl/sql语句,而普通用户将不能执行这些操作。停顿数据库可以使用alter system quiesce restricted命令,改变为正常状态可以使用alter system unquiesce命令。建立两个会话:会话1:sqlplus sys/sys as sysdbaalter system quiesce restricted;select ename,sal from scott.emp where empno=7788;会话2:sqlplu 阅读全文

posted @ 2013-05-14 17:06 LinuxPanda 阅读(1183) 评论(0) 推荐(0) 编辑

启动和停止数据库——停止例程

摘要: 停止例程是使用shutdown命令来完成的,并且该命令可以带有normal,transaction,immediate,abort四个选项,默认为normal区别如下:Shutdown个选项的区别NORMALTRANSACTIONIMMEDIATEABORT允许新连接NONONONO等待会话结束YESNONONO等待事务结束YESYESNONO强制检查点关闭文件YESYESYESNO1.shutdown normal该命令用于执行正常关闭数据库。当执行该命令时,系统会等待所有会话结束。如果存在未断开会话,则例程会处于等待状态。只有当所有会话结束后,才会停止例程。两个会话:第一个:sqlplus 阅读全文

posted @ 2013-05-14 11:40 LinuxPanda 阅读(397) 评论(0) 推荐(0) 编辑

2013年5月13日

启动和停止数据库——启动例程并打开数据库

摘要: 1.启动例程conn sys/sys as sysdbastartup nomount2.nomount 状态转为mount状态alter database mount;alter database open;3.启动例程并装载数据库startup mount4.启动例程装载并打开数据库startup open5.以受限模式打开数据库startup restrict6.以只读模式打开数据库conn sys/sys as sysdbashutdown immediatestartup mountalter database open read only;update scott.emp set 阅读全文

posted @ 2013-05-13 22:11 LinuxPanda 阅读(281) 评论(0) 推荐(0) 编辑

2013年5月9日

管理例程——管理初始化参数——显示参数文件

摘要: 1.使用show parameters 命令像是初始化参数该命令用于显示当前会话初始化参数的名称,类型及值。若不带参数,则会显示所有会话参数。如只显示部分参数,则需要带有参数全名或部分字符。例子:显示resource_limitshow parameters resource_limitSQL> show parameters resource_limitNAME TYPE VALUE------------------------------------ ----------- ------------------------------resource_limit boolean T 阅读全文

posted @ 2013-05-09 13:56 LinuxPanda 阅读(679) 评论(0) 推荐(0) 编辑

2013年5月8日

管理例程——管理初始化参数——修改动态参数和静态参数

摘要: 动态参数是指在例程时使用alter session alter system ……deferred alter system命令可以直接修改的参数,而静态参数是指在例程运行时不能直接修改的参数。1.用alter session 命令修改动态参数注意;该命令只会当前回话生效。例子:select sysdate from dual;SQL> select sysdate from dual;SYSDATE--------------08-5月 -13alter session set nls_date_format='yyyy-mm-dd';select sysdate fr 阅读全文

posted @ 2013-05-08 17:04 LinuxPanda 阅读(238) 评论(0) 推荐(0) 编辑

管理例程——管理初始化参数——参数文件

摘要: 参数文件用于存放例程的初始化参数。它包括参数文件和服务器参数文件。为了简化参数管理,建议使用sqfile。因为多数参数具有默认值,所以参数文件时间存放了非默认的初始化参数。1.pfilepfile是文本格式的参数文件。操作系统不同,pfile文件默认的存放路径也有所不同。windows:默认路径为%oracle_home%\database,默认文件名为init%oracle_sid%.ora。unix/linux:默认存放路径为$oracle_home\dbs,默认文件名为init$oracle_sid.ora。如果修改pfile文件的初始化参数,那么可以使用各种文本编辑器直接修改,原则如下 阅读全文

posted @ 2013-05-08 07:35 LinuxPanda 阅读(389) 评论(0) 推荐(0) 编辑

管理例程——管理初始化参数——常用参数

摘要: 初始化参数用于设置例程和数据库的特征。db_name: 用于设置数据库名。db_domain:用于设置数据库在网络环境中的逻辑位置。instance_name:用于设置例程的唯一名称。control_files:用于设置一个或多个控制文件名(最多8个)。remote_login_passwordfile:用于设置特权用户的验证方式。(详见:http://www.cnblogs.com/zhaojiedi1992/archive/2013/05/07/oracle11g_sql_0027.html)undo_management:用于设置undo管理模式。undo_tablespace:用于设置 阅读全文

posted @ 2013-05-08 07:20 LinuxPanda 阅读(216) 评论(0) 推荐(0) 编辑

2013年5月7日

管理例程——特权用户验证

摘要: 特权用户是指具有sysdba或sysoper特权的数据库用户,默认情况下只有sys用户具有sysdba和sysoper特权。特权用户具有os验证和口令文件验证等两种验证方式。1.os验证os验证是指使用os用户确保特权用户的安全性,并且该种验证方式只适用于服务器本地登录,而不是用于远程登录。在设置了os验证之后,以特权用户身份登录不需要提供用户名和口令(例如conn /as sysdba)。当使用os验证方式时,只有具有osdba角色有osdba的os 用户才能以sysdba身份登录,,只有具有osoper角色的os 用户才能以sysoper身份登录,如果使用os验证,那么必须将初始化参数re 阅读全文

posted @ 2013-05-07 22:51 LinuxPanda 阅读(343) 评论(0) 推荐(0) 编辑

管理例程——数据库管理员

摘要: 1.sysdba特权sysdba特权是oracle至高无上的一种特权。当用户具有该特权时,不仅可以启动,关闭,建立,备份和恢复数据库,而且具有dba角色的所有权限。在建立数据库之后,默认情况下只有sys用户具有sysdba特权。当以sysdba特权登录时必须带有as sysdba选项,而且在服务器本体登录时os用户必须具有osdba角色;例子:sysplus sys/admin as sysdbastartup forcecreate user user01 inentified by user01;C:\Documents and Settings\Administrator>sqlp 阅读全文

posted @ 2013-05-07 22:09 LinuxPanda 阅读(246) 评论(0) 推荐(0) 编辑

hduoj 1518square

摘要: 倒计时——距离“西山居-2013编程挑战赛”报名截止还有8天!SquareTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4915Accepted Submission(s): 1572Problem DescriptionGiven a set of sticks of various lengths, is it possible to join them end-to-end to form a square?InputThe firs 阅读全文

posted @ 2013-05-07 19:13 LinuxPanda 阅读(200) 评论(0) 推荐(0) 编辑

开发PL/SQL子程序——触发器——编译触发器,删除触发器,显示触发器

摘要: 编译触发器:当修改表结构时,会导致触发器为无效状态。为了使得触发器生效,必须要重新编译触发器;alter trigger tr_sal_change compile;删除触发器:drop trigger tr_sal_change ;显示触发器代码:select trigger_body from user_triggerswhere trigger_name='TR_SAL_CHANGE'; 阅读全文

posted @ 2013-05-07 17:06 LinuxPanda 阅读(293) 评论(0) 推荐(0) 编辑

开发PL/SQL子程序——触发器——使用触发器注意事项

摘要: 当编写dml触发器时,触发器代码不能从触发器所对应的表中读取数据。例如,如果要基于emp表建立触发器,那么该出发起的执行代码不能包含对emp表的查询操作。尽管机那里触发器时不会出现任何错误,但在执行相应触发操作时会显示错误的信息。假定要确保雇员的新工资不能超过当前的最高工资,并使用触发器实现;create or replace trigger tr_emp_salbefore update of sal on emp for each rowdeclare maxsal number(6,2);beginselect max(sal)into maxsal from emp ;if :new. 阅读全文

posted @ 2013-05-07 17:00 LinuxPanda 阅读(1179) 评论(0) 推荐(0) 编辑

开发PL/SQL子程序——触发器——行触发器

摘要: 行触发器是指当执行dml操作时,没作用一行被触发的一次的触发器。create table audit_emp_change(name varchar2(10),oldsal number(6,2),newsal number(6,2),time date);create or replace trigger tr_sal_changeafter update of sal on emp for each rowdeclare v_temp int;beginselect count(*) into v_temp from audit_emp_changewhere name=:old.enam 阅读全文

posted @ 2013-05-07 16:47 LinuxPanda 阅读(379) 评论(0) 推荐(0) 编辑

开发PL/SQL子程序——触发器——语句触发器

摘要: 语句触发器是当执行dml语句时,被隐含执行的触发器。如果在表上针对某种dml操作建立了语句触发器,那么当执行dml时,会自动执行触发器的相应代码。注意: 当使用语句触发器时,不能记录列数据的变化。create or replace trigger tr_sec_empbefore insert or update or delete on empbegin if to_char(sysdate,'DY','nls_date_language=AMERICAN')in ('SAT','SUN',) thenraise_applica 阅读全文

posted @ 2013-05-07 07:50 LinuxPanda 阅读(238) 评论(0) 推荐(0) 编辑

2013年5月2日

开发PL/SQL子程序——函数

摘要: 函数用于返回特定数据。如果应用程序经常需要执行sql语句返回特定数据,那么可以基于这些操作建立特定的函数。通过使用函数,不仅可以简化客户端应用程序的开发和维护,而且可以提高应用程序的执行性能。建立函数例子: 返回雇员工资的函数create or replace function get_sal (name in varchar2)return number asv_sal emp.sal%type;beginselect sal into v_sal from emp ;where upper(ename)=upper(name);return v_sal;exceptionwhen no_d 阅读全文

posted @ 2013-05-02 12:20 LinuxPanda 阅读(259) 评论(0) 推荐(0) 编辑

开发PL/SQL子程序——过程

摘要: 过程用于执行特定操作。如果应用程序经常需要执行特定操作,那么可以基于这些操作建立特定的过程,不仅可以简化客户端应用程序的开发和维护,而且可以提高应用程序的运行性能。建立过程例子:建立为雇员插入数据的过程:create or replace procedure add_emp(eno number,name varchar2,sal number,job varchar2 default 'CLERK',dno number)is e_intergrity exception;pragma exception_init(e_integrity,-2291);begin inser 阅读全文

posted @ 2013-05-02 12:07 LinuxPanda 阅读(285) 评论(0) 推荐(0) 编辑

2013年5月1日

使用复合数据类型——PL/SQL记录表

摘要: pl/sql变量用于处理单行单列数据,pl/sql记录用于处理单行多列数据,pl/sql表用于处理单列多行数据。为了在pl/sql块中处理多行多列数据,开发人员可以使用pl/sql记录表。pl/sql记录表结合了pl/sql记录和pl/sql表的优点,它类似有高级语言中的多维数组,从而可以有效的处理多行多列的数据。例子:根据部门号输出该部门的所有雇员名及其工资:declare type emp_table_type is table of emp%rowtypeindex by binary_integer;emp_table emp_table_type;beginselect * bulk 阅读全文

posted @ 2013-05-01 18:04 LinuxPanda 阅读(397) 评论(0) 推荐(0) 编辑

使用复合数据类型——PL/SQL表

摘要: pl/sql表也称为索引表,它类似于高级语言的一维数组。p/sql记录用于处理单行多列数据,而pl/sql表用于处理多行单列数据。注意:高级语言数组的元素个数是有限制的,而且下标不能为负;而pl/sql表的元素个数没有限制,而且下标可以为负;使用pl/sql表处理单行单列数据例子:根据雇员号输出雇员名:@d:demo\s;declare type ename_table_type is table of emp.ename%typeindex by binary_integer;ename_table ename_table_type;beginselect ename into ename_ 阅读全文

posted @ 2013-05-01 17:52 LinuxPanda 阅读(284) 评论(0) 推荐(0) 编辑

使用复合数据类型——PL/SQL记录

摘要: pl/sql记录类似于高级语言中的结构,它有易于处理单行数据。当使用pl/sql记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量。自定义pl/sql记录当使用自定义的pl/sql记录时,需要分别定义pl/sql记录类型和记录变量。例子:set verify offset serveroutput ondeclare type emp_record_type is record( name emp.ename%type,salary emp.sal%type ); emp_record emp_recor... 阅读全文

posted @ 2013-05-01 14:59 LinuxPanda 阅读(635) 评论(0) 推荐(0) 编辑

使用例外

摘要: 例外(exception)是一种pl/sql标示符,他用于处理pl/sql程序的运行错误。为了提高pl/sql程序的健壮性,开发人员必须要考虑pl/sql程序可能出现的各种错误,并编写相应的例外处理部分。如果不进行错误处理,那么在出现运行错误时,会终止pl/sql程序的运行,并显示错误信息。例子:declarev_ename emp.ename%type;beginselect ename into v_ename from emp where empno=&no;dbms_output.put_line('雇员名:'||v_ename);end;/输入no的值:111 阅读全文

posted @ 2013-05-01 11:59 LinuxPanda 阅读(412) 评论(0) 推荐(0) 编辑

使用游标——使用游标更新或删除数据

摘要: 通过使用显式游标,不仅可以一行一行的处理select语句的结果,而且也可以更新或删除当前游标行的数据。注意,如果通过游标更新活是删除数据,那么在定义游标时必须要带有for update 子句。例子:显示雇员名,工资,部门号,并给部门30的所有雇员增加200元工资:declare cursor emp_cursor is select * from emp for update;beginfor emp_record in emp_cursor loopif emp_record.deptno=30 thenupdate emp set sal=sal+200 where current of 阅读全文

posted @ 2013-05-01 10:40 LinuxPanda 阅读(4230) 评论(0) 推荐(1) 编辑

使用游标——游标FOR循环

摘要: 游标for循环是在pl/sql块中使用游标最简单的方式,它简化了对游标的处理。当使用游标for循环时,oracle会隐含的打开游标,提取游标数据并关闭游标。例子: 显示emp表所有雇员名及其工资:declarecursor emp_cursor is select ename,sal from emp ;beginfor emp_record in emp_cursor loopdbms_output.put_line('姓名: '||emp_record.ename||' , 工资: '||emp_record.sal);end loop;end ;/anon 阅读全文

posted @ 2013-05-01 09:54 LinuxPanda 阅读(9774) 评论(0) 推荐(1) 编辑

2013年4月30日

使用游标——参数游标

摘要: 参游标是指带有参数的游标。在定义了参数游标之后,当使用不同参数值多次打开游标时,可以生成不同的结果集。定义参数游标的语法如下:CURSOR cursor_name(parameter_name datetype) IS select_statement;注意,当定义参数游标时,游标参数只能指定数据类型,而不能指定长度。当定义参数游标时,一定要在游标子查询的where子句中引用该参数,否则就失去了定义参数游标的意义。例子: 显示特定部门所有雇员名:declarecursor emp_cursor(no number) isselect ename from emp where deptno=no 阅读全文

posted @ 2013-04-30 23:55 LinuxPanda 阅读(2204) 评论(0) 推荐(0) 编辑

使用游标——显式游标

摘要: 定义游标。CURSOR cursor_name IS select_statement;cursor_name 用于指定要定义的游标名称,select_statement用于指定游标所对应的select语句。打开游标。OPEN cursor_name;提取数据。FETCH cursor_name INTO variable1,variable2......;variablel用于指定接收游标数据的变量。注意,因为每条fetch into 语句只能提取单行数据,所以为了处理所有数据,必须使用循环语句。关闭游标。CLOSE cursor_name;%ISOPEN: 用于确定游标是否已经打开。如果游 阅读全文

posted @ 2013-04-30 23:40 LinuxPanda 阅读(619) 评论(0) 推荐(0) 编辑

使用控制结构——顺序控制语句——GOTO和NULL

摘要: PL/SQL 不仅提供了条件分支语句和循环控制语句,而且还提供了循环控制语句goto和null 。但与if,case,和loop语句不同,goto语句和null语句不是非常重要,一般情况下这两种语句不需要使用。goto语句用于跳转到特定处执行语句。注意,因为使用goto语句会增加程序的复杂度,而且使得应用程序可读性非常差,所以开发应用程序一般不建议使用goto语句。例子:declarei int:=1;begin loopinsert into temp values(i);if i=10 then goto end_loop;end if;i:=i+1;end loop;<<en 阅读全文

posted @ 2013-04-30 23:05 LinuxPanda 阅读(337) 评论(0) 推荐(0) 编辑

使用控制结构——循环语句——嵌套循环和标号

摘要: 循嵌套是指在一个循环语句之中嵌入另一个循环语句,而标号(label)则用于标记嵌套快活嵌套循环。通过在嵌套循环中使用标号,可以区分内层循环和外层循环,并且可以在内层循环中直接退出外层循环。在编写pl/sql块时,可以使用<<label_name>>定义标号。例子:declareresult int;begin<<outer>>for i in 1..100 loop<<inner>>for j in 1..100 loopresult:=i*j;exit outer when result=1000;exit when r 阅读全文

posted @ 2013-04-30 22:55 LinuxPanda 阅读(291) 评论(0) 推荐(0) 编辑

使用控制结构——循环语句——FOR循环

摘要: 当使用基本循环或是while循环式,需要定义循环控制变量,并且循环控制变量不仅可以使用number类型,也可以使用其他数据类型;而当使用for循环时,oracle会隐含定义循环控制变量。beginfor i in reverse 1..10 loopinsert into temp values(i);end loop;end;/ 阅读全文

posted @ 2013-04-30 22:36 LinuxPanda 阅读(321) 评论(0) 推荐(0) 编辑

使用控制结构——循环语句——WHILE循环

摘要: 基本循环至少要执行一次循环体语句,而对于while循环来说,只有条件为true时,才会执行循环体内的语句。while循环以while loop 开始,以end loop 结束,declarei int :=1;beginwhile i<=10 loopinsert into temp values(i);i:=i+1;end loop;end;/ 阅读全文

posted @ 2013-04-30 22:29 LinuxPanda 阅读(264) 评论(0) 推荐(0) 编辑

导航