plsql左侧窗口列表讲解

本文详细介绍Oracle数据库中的多种特性,包括recentobjects(最近访问对象)、recyclebin(回收站)的管理与使用、functions(函数)、procedures(存储过程)、packages(包)的应用等,为读者提供了深入理解和使用Oracle数据库的指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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


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 表簇 这个功能还真的没有用过



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值