Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1382372
  • 博文数量: 416
  • 博客积分: 13005
  • 博客等级: 上将
  • 技术积分: 3297
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 16:26
文章分类

全部博文(416)

文章存档

2014年(1)

2013年(4)

2012年(46)

2011年(64)

2010年(12)

2009年(4)

2008年(40)

2007年(187)

2006年(58)

分类: Oracle

2007-02-02 09:51:44

ORACLE PLSQL使用经验总结_7
声明 
一个新的量可在行部分(executable section)被予初始
 
量在声明部分(declaration section
)被声明和初始化。 
PL/SQL 
量可用于操数据(如算),而无需访问数据PL/SQL 量可在其他量的里再使用。PL/SQL 量可用于暂时数据。 
一个PL/SQL由三部分成:声明部分(Declarative),行部分(Executable),异常理部分(Exception Handling
)。 
BOOLEAN
是个
逻辑变量,它的只能是TRUE, FALSE NULL 
在声明一个PL/SQL参数
,可以使用赋值运算符 为该参数。如果没有参数,参数会被null。如果参数被定NOT NULL束,那就必须赋 
一个句里只能声明一个量。声明量的法:
 
identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr] 
写可
 
一旦一个量被声明,它可以在所有的子嵌套中引用,但不能在任何外部中引用。一量不能在嵌套行部分被声明。
 
在一个PL/SQL里的三个部分,声明部分包含量,常数,游和用可在其他部分引用的的异常,行部分包含以BEGIN始的主程序,如用于操数据的SQL句等,异常部分用于指定行部分出异常情况行的作。
 
在内部inner block)中声明的量不能在外部outer block)引用,也可以在嵌套nested block)里声明的量不能在封闭块enclosing block)引用,而在封闭块量可以在嵌套中以引用。例:
 
1. BEGIN 
2. DECLARE 
3. v_new_tech_id NUMBER := 879563; 
4. v_old_tech_id NUMBER := 874512; 
5. v_rows_updated NUMBER := 1; 
6. BEGIN 
7. UPDATE service 
8. SET technician_id = v_new_tech_id 
9. WHERE technician_id = v_old_tech_id; 
10. v_rows_updated := SQL%ROWCOUNT; 
11. END; 
12. TEXT_IO.PUT_LINE (TO_CHAR(v_rows_updated)); 
13. END; 
12行出,在外部中引用了内部中声明的v_rows_updated。要行一个已存的block.sql文件,使用以下法:
 
START block.sql 
一个嵌套闭块里的一个可句,一个可嵌套在任何允放置可句的地方,包括行部分和异常理部分。
 
PL/SQL
表达式不能包含函数,但一个PL/SQL里的SQL句可以。
 
当一个句中有混合的数据PL/SQL可以动态转变。如:想把一个NUMBERVARCHAR2量里,PL/SQL动态地把NUMBER值转变为VARCHAR2型的字符
 
PL/SQL
表达式可以包含SQL函数。 
嵌套
里的句不能包含一个异常段。 
行注释应以双下划线 -- ,多行注释应 /* */ 
之中。 
PL/SQL
中的SELECT
句必使用INTO子句。 
避免PL/SQL编码的含糊,ORACLE推荐以下PL/SQL标识符的命名定: 
1. SQL*Plus substitution variable 
SQL*Plus替代量)
p_name 
2. Variable 
量)
v_name 
3. Constant 
(常量)c_name 
4. SQL*Plus global variable
SQL*Plus共用
量) g_name 
5. Exception
(异常) e_name 
ORACLE
器交互 
属性用于检验DML句的果,在PL/SQL中可以标应用四属性:
 
SQL%ROWCOUNT 
受最近行的SQL句影响的行的数目。(一个整数
 
SQL%FOUND Boolean
属性,如果最近的SQL句影响了一行或多行,其值为TRUE
 
SQL%NOTFOUND Boolean
属性,如果最近的SQL
句没有影响任何行,其值为TRUE 
SQL%ISOPEN 
FALSE,原因是PL/SQL是它们结行后立即关闭 
PL/SQL
不支持DDL DCL 命令。 
PL/SQL
中,使用SELECT句从数据库检索数据,必使用INTO子句,而SELECT只返回一行,否错误 
PL/SQL
DML句里不能使用IF THEN句。
 
如果PL/SQL中的SELECT句返回超一行数据,会TOO_MANY_ROWS异常,如果没有返回数据,会NO_DATA_FOUND 异常,些异常可以在的异常理部分俘
 

阅读(2915) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~