Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49317
  • 博文数量: 19
  • 博客积分: 307
  • 博客等级: 二等列兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-03 21:01
文章分类
文章存档

2014年(6)

2012年(13)

我的朋友

分类: Oracle

2012-08-16 13:42:28

欠缺的内容:包的创建和使用。
  包的定义形式如下:

  包说明:

  PACKAGE 包名 IS

  --变量说明;

  --游标说明;

  --例外说明;

  --记录说明;

  --Plsql表说明;

  --过程说明;

  --函数说明;

  END[包名];

  包体:

  PACKAGE BODY 包名 IS

  --变量名说明;

  --游标说明;

  --游标申明;

  --例外说明;

  --记录说明;

  --plsql说明;

  --过程体;

  --函数体;

  BEGIN

  --语句序列

  END[包名];


创建一个包
CREATE OR REPLACE PACKAGE my_pak1
  2  AS
  3  TYPE emp_type IS RECORD(
  4  gh emp.empno%type,
  5  xm emp.ename%type,
  6  gz emp.sal%type);
  7  end;
  8  /
调用该程序包
1  DECLARE
  2  v1 my_pak1.emp_type;
  3  BEGIN
  4  SELECT empno,ename,sal into v1 FROM emp where empno='1';
  5  DBMS_OUTPUT.PUT_LINE('工号是:'||v1.gh);
  6  DBMS_OUTPUT.PUT_LINE('姓名是:'||v1.xm);
  7  DBMS_OUTPUT.PUT_LINE('工资是:'||v1.gz);
  8* END;
包的内容需要重新kan
视图:
是一个虚拟表,只是一个查询语句
视图比较安全,方便,一致性
CREATE OR REPLACE VIEW myview1
  2  AS
  3  SELECT * FROM books;
最简单的视图
如果向视图中插入或者修改数据,都会更改数据
可以在视图的创建时加入条件,让不能随便写入
1  CREATE OR REPLACE VIEW myview
  2  AS
  3  SELECT * FROM books WHERE price>30
  4* WITH CHECK OPTION
如果使用WITH READ ONLY,那么就不能更新,只能查询
这个就是检查不能写入比30小的值,这个只能限制视图,不能限制表
如果视图是两个或两个以上的表构成,不能同时更新两个表,如果要使用可以使用替代触发器同时更新两

个或两个以上
需要查看用户视图可以查看DESC USER_VIEWS,还要DBA_VIEWS数据字典中
ORACLE中的同义词
就是一个对象的用户模式,比如访问另外一个用户需要加用户前缀
比如SCOTT用户的dept表,其他用户访问的时候就要用scott.dept
创建同义词的语法
CREATE SYNONYM 同义词名 FOR 用户.表名 --这种表示私有
使用CREATE PUBLIC SYNONYM 同义词名 FOR 用户.表名 表示公有
公共同义词和私有同义词
序列
一个独立型的事物,安装一定规则增加或减少
序列使用时机,默认从1开始,每次增加1
创建语法
CREATE SEQUENCE my_seq1 START WITH 1 INCREMENT BY 1 ORDER NOCYCLE;--从1开始,每次递增1,不循

使用方法
select my_seq1.NEXTVAL FROM DUAL;
必须先查询NEXTVAL,才能使用CURRVAL.
创建一个表用于递增
将这个的值插入表的一列,相当于就是做递增的编号,自动编号
数据字典,几乎每一个都有,如DBA_VIEWS DBA_SEQUENCES等或者用户的USER_VIEWS ,USER_SEQUENCES
flashback 不支持sys和system用户
Flashback Drop 是从Oracle 10g 开始出现的, 用于恢复用户误删除的对象(包括表,索引等), 这个技

术依赖于Tablespace Recycle Bin(表空间回收站),这个功能和windows的回收站非常类似。
Flashback 不支持sys用户. system表空间下的对象,也不能从回收站里拿到。故使用SYS 或者SYSTEM用

户登陆时, show recyclebin 为空。

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