plsql左侧窗口列表讲解


这些列表内容,新人甚至写代码写了几年的,也不能全部每个功能的大致作用,今天我整理一遍,给大家讲解一遍


1,recent objects
你最近访问或是使用过的对象。 就是一个记录,相当于的最近访问的内容列表。

2,recycle bin
(1)、回收站启动和关闭
回收站默认是开启的.不过我们可以通过参数recyclebin来关闭和开启.
如果只是针对每个session可以通过alter session set recyclebin=off; 和 alter session set recyclebin=on;来关闭和开启
如果是针对所有session可以通过修改系统参数recyclebin来实现,不过这里要注意10g和11g有点不一样,它们的参数类型不同
10g可以用:alter system set recyclebin=off; 和alter system set recyclebin=on;来关闭和开启
11g可以用:alter system set recyclebin=off deferred; 和alter system set recyclebin=on deferred;来关闭和开启
(2)、查看回收站内容 
select * from user_recyclebin;或select * from recyclebin;查看当前用户所drop的对象(里面有对象之前的名字和drop之后的名字)
select * from dba_recyclebin;查看所有用户drop掉的对象
其实当一个对象drop后,并且开启了回收站功能.它并没有真正被删除,实际上只是修改了一下名字,我们用select * from user_objects where type= 'TABLE'还能查到.只是它的名字有点怪,例如BIN$qAUuckGyd3TgQKjAFAFTAg==$0,它的命名规范是BIN$unique_id$version  其中BIN代表RecycleBin, unique_id是数据库中该对象的唯一标志,26个字符长度 ,version表示该对象的版本号.
(3)、还原回收站内容
假如有表test被drop,drop后的object_name是BIN$qAUuckGyd3TgQKjAFAFTAg==$0
可以用flashback table "BIN$qAUuckGyd3TgQKjAFAFTAg==$0"  to before drop ;(记得名字加双引号)
或者flashback table test  to before drop ;来还原.不过假如drop掉一个表test,再新建一个表test,然后再drop.那么flashback table test  to before drop只能还原最后被drop掉的表test.最先drop掉的表还原时会出错,因为表名不能重名.所以必须改名flashback table test  to before drop rename to test2
(4)、清空回收站
如果一次只清空一个表,可以用PURGE table  test 或PURGE table "BIN$qAUuckGyd3TgQKjAFAFTAg==$0";
如果一次清空所有的可以用PURGE recyclebin 或者PURGE dba_recyclebin
还原时是只能一次还原一个表,不能像清空一样一次还原所有表
(5)、注意事项
如果表是在system表空间下面则不能使用回收站的功能,不知道为啥有这限制啊
如果表空间快满时系统会自动的去清空回收站中一部分内容,先清空最早drop的对象
3,Functions 函数 不多解释
4,procedures 存储过程,常用,这个刚开始学有点小复杂,其实是很简单的东西
定义:存储过程在Oracle中,可以在数据库中定义子程序,这种程序块称为存储过程
5,Packages oracle包
定义:简化应用设计、提高应用性能、实现信息隐藏、子程序重载。
我讲一下自己用到的东西,由于 Oracle存储过程没有 返回值,它的所有 返回值都是通过out参数来替代的,我们在使用存储过程是,定义两个如下图的出参

下图 调用Packages

过程业务逻辑结束以后,输出

可以看到,它是把游标(可以理解为一个指针),作为一个out 参数来返回值的。

第二种
先create package,在里面声明procedure


然后再package bodies中写实现存储过程,这感觉跟写java类 然后去继承实现以下

6,types 可以自定义数据类型
7,types bodies 通packpages bodies 一个是类型,一个是你类型体
type, 看似简单 实则涉及到高级开发,有兴趣可以专门去研究一下
8,trigger 触发器
trigger和procedure,function类似,只不过它不能被显示调用,只能被某个事件触发然后 Oracle自动去调用.常用的一般是针对一个表或视图创建一个trigger,然后对表或视图做某些操作时触发trigger.当然除此之外还有,schema,database级别的trigger

在对t_kh_yg 表进行插入以及修改操作时,改变对应t_kh 表数据的值
9,java sources
可以调用在函数中调用java类


Functions 代码
create or replace function md5encrypt(s varchar2)
return varchar2 as
language java name 'MD5Util.encrypt(java.lang.String) return java.lang.String';
如果有这md5加密需求
SELECT  md5encrypt(123456) FROM dual ;  这样用方便了吧!
10,jobs 可以定时执行存储过程


11, Queue 高级队列
高级队列是oracle的一种高级应用,它主要是表和触发器之间的组合而成的一种应用。其主要作用是在各应用系统中进行消息传递。
目的:
利用高级队列来实现消息在两个不同数据库之间的异步传输,满足业务系统的改造需求。
(这个功能我是没有用过)
12,libraries oracle 库 (也没有用过) 百度了,网上资料比较少
13,directonries oracle目录
14,tables 表 不介绍了吧
15,view 视图 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。(不解释)
16,materialized view Oracle高级应用之物化视图(materialized view)(没有实用过)
17,sequence 索引 不解释
18,user 用户表空间 这个自己用就知道了
19,profiles 限制ORACLE用户
20,roles 授予权限或者角色 权限控制
21,synonyms Oracle的同义词(synonyms)从字面上理解就是别名的意思
22,database link 此功能可以在本库中操作其他数据库
23, tablespace 表空间
24,cluster 表簇 这个功能还真的没有用过



  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值