北大青鸟oracle学习笔记25
	
    
    
	过程中的事务
定义过程p1
create or replace procedure p1
as
begin
  insert into student values(5,'xdh','m',sysdate);
  rollback;
end;
定义过程p2
create or replace procedure p2
as
begin
  update student set stu_sex = 'a' where stu_id = 3;
  p1;
end;
执行过程p2
  
exec p2;
执行完毕发现表中数据没有变更,说明p1中的rollback语句将p2中的update语句也回滚了。
自主事务处理
步骤:
  
主事务处理启动自主事务处理
  
主事务处理被暂停
  
自主事务处理sql操作
  
中止自主事务处理
  
恢复主事务处理
  
  
pragma autonomous_transaction
  
用于标记子程序
在p1的as begin当中加入 pragma autonomous_transaction  后执行,发行p2的update语句生效,p1中的事务作为自主事务来处理,不影响主事务。
程序包
相关对象的封装
  
-程序包规格说明
  
    声明子程序,不包含实现
  
create package 包名 is|as 变量声明|类型定义|异常声明|游标声明|函数说明|过程说明
  
pragma restrict_references(函数名,WNDS[,WNPS][,RNDS][,RNPS])
  
end [包名];
  
create or replace package StuPackages
  
is
  
  type curRefStudent is REF CURSOR RETURN student%rowtype;
  
  procedure insertStudent(stuid in student.stu_id%type,stuname in student.stu_name%type,stusex in student.stu_sex%type,studate in student.stu_birthday%type);
 Function QueryStudent(stuid in student.stu_id%type) return student%rowtype;
end StuPackages;
  
-程序包主体
  
    定义子程序,实现声明部分
  
create package body 包名 is|as 变量声明|类型定义|异常声明|游标声明|函数定义|过程定义
  
end [包名];
CREATE OR REPLACE
PACKAGE BODY STUPACKAGES AS
  procedure insertStudent(stuid in student.stu_id%type,stuname in student.stu_name%type,stusex in student.stu_sex%type,studate in student.stu_birthday%type) AS
     i INTEGER;
     Student_Exist EXCEPTION;
  BEGIN
    select count(*) into i from student where stu_id = stuid;
    if i>0 then
      raise Student_Exist;
    else
    insert into student values(stuid,stuname,stusex,studate);
    commit;
    end if;
    
     
	
	
    
    
	相关文档:
        
    
        刚开始学习Orace,遇到一些非常好的书,在下面列出,随着学习的深入会把遇到的好书都列出来,供学习Oracle的朋友参考,
也欢迎各位朋友补充:
基础:
      1. ORACLE DBA基础培训教程      何明著            清华大学出版社
&n ......
	
    
        
    
     外键约束保证参照完整性。外键约束限定了一个列的取值范围。一个例子就是限定州名缩写在一个有限值集合中,这个值集合是另外一个控制结构——一张父表
    下面我们创建一张参照表,它提供了完整的州缩写列表,然后使用参照完整性确保学生们有正确的州缩写。第一张表是州参照表,State作为 ......
	
    
        
    
    2010-03-12 21:18:52
在google里一搜一大把。但大多都是一个版本。在这里我也转贴一下。
转贴:http://blog.csdn.net/shongyu/archive/2009/06/01/4233260.aspx
按照如下步骤进行操作:
1、查看用户的proifle是哪个,一般是default: 
sql>SELECT username,PROFILE from dba_users; 
2、查看指定概要文件(如defau ......
	
    
        
    
    原链接:http://www.oracle.com/webapps/dialogue/dlgpage.jsp?p_ext=Y&p_dlg_id=7731619&src=6817982&Act=4&sckw=APACMK09050910MPP005.GCM.8074.110
能否在第一时间
      获得新战略的反馈意见?
能否通过管理模型
      来预测业务数据?
 ......
	
    
        
    
    
【实现步骤】
 1. 创建表blog_info, 具有ID和title两个字段, 其中ID将设置为自动增长列;
 2. 创建序列:
    create sequence sq_blog_info
    start with 1
    increment by 1
    nomaxvalue
    nocycle
   ......