• <*>动态sql   
  •  Oracle中的动态sql可以通过本地动态sql命令执行,也可以通过DBMS_SQL程序包来执行。   
  •  语法:   
  •  execute immediate 动态sql语句字符串   
  •  
  •  [using  绑定输入参数变量<参数值>]   
  • <*>错误处理   
  •  >预定义异常   
  •  pl/sql支持的预定义异常:   
  •  异常    说明   
  •  ACCESS_INTO_NULL  在未初始化对象时出现   
  •  CASE_NOTE_FOUND   在case语句中的选项与用户输入的数据不匹配是出现   
  •  COLLECTION_IS_NULL  在给尚未初始化的表或数组赋值时出现   
  •  CURSOR_ALREADY_OPEN  在用户试图打开已经打开的游标是出现,在重先打开游标前必须先将其关闭   
  •  DUP_VAL_ON_INDEX  在用户试图将重复的值存储在使用唯一索引的数据库列中时出现。   
  •  INVALID_CURSOR   在执行非法的游标运算是出现。   
  •  INVALIE_NUMBER   在将字符串转换为数字时出现。   
  •  LOGIN_DENIED   在输入用户名或密码无效时出现   
  •  NO_DATA_FOUND   在表中不存在请求的行是出现。   
  •  STORAGE_ERROR   在内存损坏或pl/sql耗尽内存时出现。   
  •  TOO_MANY_ROWS   在执行select into语句后返回多行时出现。   
  •  VALUE_ERROR   在产生大小限制错误时出现。   
  •  ZERO_DIVIDE   以零做除数时出现。   
  •  使用异常的语法:   
  •  exception 异常名称 then  
  •   执行异常处理语句....   
  •  >用户自定义异常   
  •  语法:   
  •   声明: 自定义异常名称 EXCEPTION;   
  •   使用raise语句显示引发:raise 自定义异常名称   
  •   处理: exception 自定义异常名称 then  
  •     执行异常处理语句....   
  •  >引发应用程序错误   
  •  过程RAISE_APPLICATION_ERROR用于创建用户定义的错误信息。   
  •  语法:   
  •  RAISE_APPLICATION_ERROR(error_number,error_message)   
  •  其中:   
  •  error_number:指定的异常编号,必须在-20000和-20999之间的负整数。   
  •  error_message:异常指定的消息文本。长度可答2048字节,错误消息是与error_number表示关联的文本。    
  • 十一.游标管理   
  •  游标是构建在pl/sql中,用来查询数据,获取记录集合的指针。   
  • <*>静态游标   
  •  静态游标是在编译时知道其select语句的游标。   
  •  >隐式游标    
  •  Oracle预定义了一个sql的隐式游标,通过检查隐式游标的属性可以获取与最近执行的sql语句相关的信息。   
  •  隐式游标的属性:   
  •   .. %found:在dml语句影响一行或多行时,%found属性在返回true。   
  •   .. %notfound:与%found的作用正好相反,如果没有影响任何行,则返回true。   
  •   .. %rowcount:返回dml语句影响的行数,如果没有影响行则返回0。   
  •   .. %isopen:返回游标是否已经打开的值。在执行sql语句之后,Oracle自动关闭sql游标,所以隐式游标的%isopen属性始终为false。   
  •  >显示游标   
  •  显示游标是由用户显示声明的游标。根据在游标中定义的查询,查询返回的行集合可以包含零行或多行,这些行称为活动集。游标将指向活动集中的当前行。   
  •  显示游标的标准操作过程:   
  •  1.声明游标   
  •  2.打开游标   
  •  3.从游标中获取记录   
  •  4.关闭游标   
  •  显示游标在declare部分的声明语法:   
  •  cursor cursor_name [(parameter[,parameter..])]    
  •  [return return_type] is select_statement;   
  •  其中:    
  •  cursor_name:是游标的名称。   
  •  parameter:用于为游标指定输入参数。   
  •  return_type:定义游标提取的行的类型。   
  •  select_statement:指定游标的查询语句。   
  •  在声明游标后可以用下列语句控制游标:   
  •  open:打开游标。   
  •  fetch: 从游标中提取行。   
  •  close: 关闭游标。   
  •  显示游标同样有隐式游标的属性并起相同。   
  •  使用显示游标删除或更改:   
  •  如果处理过程中需要删除或更新行,在定义游标时必须使用select...for update语句,而在执行delete或update时使用where current of 字句指定游标的当前行。   a
  •  **提示:select语句必须只包括一个表,而且delete和update语句只有在打开游标并提取特定行之后才能使用。