- 浏览: 105765 次
最近访客 更多访客>>
最新评论
-
jiyifa:
专业的 右脑记忆方法 网站 www.jiyifa.com
...
提高记忆力的唯一方法是进行记忆力训练(转载) -
k_cancer:
= =
我的天。。
谁开出的书单啊。。
看完这个不要干程 ...
170本应该看的java书(转载) -
cupid_love:
funny
有趣的日语单词记忆法(外行学日语) -
pioneer127:
请问楼主看了几本了?
170本应该看的java书(转载) -
zzg810314:
事情就是这么的简单,哈哈
恍然大悟!?为什么我们总是比别人钱少(转载)
循环控制的基本形式是LOOP语句,LOOP和END LOOP之间的语句将无限次的执行。LOOP语句的语法如下:
LOOP
statements;
END LOOP
LOOP和END LOOP之间的语句无限次的执行显然是不行的,那么在使用LOOP语句时必须使用EXIT语句,强制循环结束,例如:
X:=100;
LOOP
X:=X+10;
IF X>1000 THEN
EXIT;
END IF
END LOOP;
Y:=X;
此时Y的值是1010.
EXIT WHEN语句将结束循环,如果条件为TRUE,则结束循环。
X:=100;
LOOP
X:=X+10;
EXIT WHEN X>1000;
X:=X+10;
END LOOP;
Y:=X;
WHILE..LOOP
WHILE..LOOP有一个条件与循环相联系,如果条件为TRUE,则执行循环体内的语句,如果结果为FALSE,则结束循环。
X:=100;
WHILE X<=1000 LOOP
X:=X+10;
END LOOP;
Y=X;
FOR...LOOP
语法:
FOR counter IN [REVERSE] start_range....end_range LOOP
statements;
END LOOP;
LOOP和WHILE循环的循环次数都是不确定的,FOR循环的循环次数是固定的,counter是一个隐式声明的变量,他的初始值是start_range,第二个值是start_range+1,直到end_range,如果start_range等于end _range,那么循环将执行一次。如果使用了REVERSE关键字,那么范围将是一个降序。
X:=100;
FOR v_counter in 1..10 loop
x:=x+10;
end loop
y:=x;
如果要退出for循环可以使用EXIT语句。
标签
用户可以使用标签使程序获得更好的可读性。程序块或循环都可以被标记。标签的形式是<>。
标记程序块
<>
[DECLARE]
... ... ...
BEGIN
........
[EXCEPTION]
.......
END label_name
标记循环
<>
LOOP
.........
<>
loop
..........
<>
loop
....
EXIT outer_loop WHEN v_condition=0;
end loop innermost_loop;
..........
END LOOP inner_loop;
END LOOP outer_loop;
GOTO语句
语法:
GOTO LABEL;
执行GOTO语句时,控制会立即转到由标签标记的语句。PL/SQL中对GOTO语句有一些限制,对于块、循环、IF语句而言,从外层跳转到内层是非法的。
X :=100;
FOR V_COUNTER IN 1..10 LOOP
IF V_COUNTER =4 THEN
GOTO end_of_loop
END IF
X:=X+10;
<>
NULL
END LOOP
Y:=X;
注意:NULL是一个合法的可执行语句。
嵌套
程序块的内部可以有另一个程序块这种情况称为嵌套。嵌套要注意的是变量,定义在最外部程序块中的变量可以在所有子块中使用,如果在子块中定义了与外部程序块变量相同的变量名,在执行子块时将使用子块中定义的变量。子块中定义的变量不能被父块引用。同样GOTO语句不能由父块跳转道子块中,反之则是合法的。
《OUTER BLOCK》
DECLARE
A_NUMBER INTEGER;
B_NUMBER INTEGER;
BEGIN
--A_NUMBER and B_NUMBER are available here
<>
DECLARE
C_NUMBER INTEGER
B_NUMBER NUMBER(20)
BEGIN
C_NUMBER:=A_NUMBER;
C_NUMBER=OUTER_BLOCK.B_NUMBER;
END SUB_BLOCK;
END OUT_BLOCK;
小结
我们在这篇文章中介绍了PL/SQL的基础语法以及如何使用PL/SQL语言设计和运行PL/SQL程序块,并将PL/SQL程序整合到Oracle服务器中,虽然PL/SQL程序作为功能块嵌入Oracle数据库中,但PL/SQL与ORACLE数据库的紧密结合使得越来越多的Oracle数据库管理员和开发人员开始使用PL/SQL。
---------------------------------------------------------------------------------------------------
Oracle常用Script
----------------
1、查看当前所有对象
-------------------
SQL> select * from tab;
2、建一个和a表结构一样的空表
-----------------------------
SQL> create table b as select * from a where 1=2;
SQL> create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;
3、察看数据库的大小,和空间使用情况
--------------------------------
SQL> col tablespace format a20
SQL> select b.file_id 文件ID,
b.tablespace_name 表空间,
b.file_name 物理文件名,
b.bytes 总字节数,
(b.bytes-sum(nvl(a.bytes,0))) 已使用,
sum(nvl(a.bytes,0)) 剩余,
sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.file_id,b.bytes
order by b.tablespace_name
/
dba_free_space --表空间剩余空间状况
dba_data_files --数据文件空间占用情况
4、查看现有回滚段及其状态
-----------------------------
SQL> col segment format a30
SQL> SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;
5、查看数据文件放置的路径
---------------------------
SQL> col file_name format a50
SQL> select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;
6、显示当前连接用户
---------------------
SQL> show user
7、把SQL*Plus当计算器
----------------------
SQL> select 100*20 from dual;
8、连接字符串
-----------
SQL> select 列1||列2 from 表1;
SQL> select concat(列1,列2) from 表1;
9、查询当前日期
---------------
SQL> select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') from dual;
10、用户间复制数据
-----------------
SQL> copy from user1 to user2 create table2 using select * from table1;
11、视图中不能使用order by,但可用group by代替来达到排序目的
-----------------------------------------------------------
SQL> create view a as select b1,b2 from b group by b1,b2;
12、通过授权的方式来创建用户
---------------------------
SQL> grant connect,resource to test identified by test;
SQL> conn test/test
--------------------------------------------------------------------------------------------------
CHAR,VARCHAR,VARCHAR2类型的区别与使用
-------------------------------------
区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串"abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。
何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率'。
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移'(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。
发表评论
-
如何在Oracle中用PL/SQL产生随机数(转载)
2007-03-13 02:54 1299在Oracle提供的standard Package中,并没有 ... -
PL/SQL中调用Java源对象产生随机数
2007-03-13 02:53 857Oracle8i数据库的一个重要特点是在数据库引擎中包含了Ja ... -
sql plus 使用技巧(转载)
2007-03-13 02:52 1140作者:debuger ... -
Oracle中通过触发器来追踪用户的活动2
2007-03-11 16:31 1006用户活动报表 使用用 ... -
Oracle中通过触发器来追踪用户的活动1
2007-03-11 16:29 1049从Oracle8i开始,Oracle引入了特殊的触发器,这些触 ... -
教你在Oracle中启动脚本跟踪存储过程
2007-03-11 16:28 1011一、用脚本启动并设置跟踪的示例 我们可以用脚本进行跟 ... -
PLSQL单行函数和组函数详解
2007-03-11 14:25 980函数是一种有零个或多 ... -
Oracle PL/SQL语言基础2
2007-03-11 14:20 1600LOB数据类型 LOB( ... -
Oracle PL/SQL语言基础1
2007-03-11 14:19 1219PL/SQL是ORACLE对标准数据 ... -
Oracle的翻页Sql语句
2007-03-11 14:13 996StringBuffer pagingSelect = new ... -
Oracle数据库较好的重新启动步骤
2007-03-11 14:00 13261. 停应用层的各种程序. ... -
SQL*PLUS命令的使用大全(转载)
2007-01-03 21:06 1101SQL*PLUS命令的使用大全 O ... -
理解和使用Oracle 8i分析工具-LogMiner (转载)
2007-01-03 21:04 942理解和使用Oracle 8i分析工具-LogMiner 理解 ... -
oracle概念和术语(转载)
2006-12-28 09:04 1213oracle概念和术语(转载 ...
相关推荐
PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及...
《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...
Oracle PL/SQL实例精解 student模式 数据库建立代码 包括数据库的建立、索引等。样本数据的插入。
Oracle PL/SQL实例编程 Oracle PL/SQL实例编程 Oracle PL/SQL实例编程
Oracle PL/SQL语言基础
Topics covered: How to use Oracle PL/SQL in all its manifestations through Oracle9i. Fundamentals of program structure (loops, cases, exceptions, etc.) and execution get attention, as do data types, ...
oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料oracle PL/SQL pdf学习资料
oracle pl/sql实例精讲student数据库模式
Considered the best Oracle PL/SQL programming guide by the Oracle community, this definitive guide is precisely what you need to make the most of Oracle’s powerful procedural language. The sixth ...
NULL 博文链接:https://elf8848.iteye.com/blog/740881
Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发
Oracle PL/SQL语言基础 Oracle内部培训资料
ORACLE PL/SQL编程之八ORACLE PL/SQL编程之八ORACLE PL/SQL编程之八ORACLE PL/SQL编程之八
Oracle PL/SQL学习官方教材,英文版,覆盖了PL/SQL的所有知识,适合入门者或作为参考资料.
oracle pl/sql从入门到精通 配套源代码
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...