分类 Oracle 下的文章

宇托 Oracle, Synonyms 0 条

在Oracle中,一般是用Schema来隔离各个用户之间的数据。当然如果附于其它用户访问权限,其它用户也可以通过Schema名来访问其它Schema下数据库对象。Synonyms(同义词)就是给数据库对象取一个别名。这个数据库对象可以是用户自己Schema下的,也可以是别的用户Schema下的。使用Synonyms(同义词)有以下好处:节省数据空间隐藏一个数据库对象的名字和拥有者隐藏分布式数据库中远程对象的位置简化SQL语句它的相...

宇托 Oracle, Table, External 3 条

最近一个项目中要用到Oracle外部表,所以查了一下资料。外部表(external tables)是对sql*loader 的一个补充,可以让我们访问数据库外部的数据资源。不过外部表存在着诸多的限制,所以我们使用前必须对其有充分的了解。外部表中的一些限制:不能在外部表上执行DML操作。不能在外部表上创建index。不支持analyze分析语句,但是可以使用dbms_stats。不支持虚拟列。oracle 10g 以后可以允许我们把...

宇托 Oracle, TableSpace, ReBuild 0 条

之前一个系统,总是出现Oracle Undo表空间不足的异常。一看Oralce发现Undo表空间使用量已经100%了。在网上找一下,发现清空的方法也不难。大概方法是新建一个Undo表空间,把Oralce的Undo表空间设置到新建的空间,然后删除重建原来的Undo表空间,再把Undo表空间设置回去就行。其具体步骤如下:1. 创建新的UNDO表空间CREATE UNDO TABLESPACE "UNDOTEMP" ...

宇托 Oracle, Sequence, Trigger 0 条

其实自增列的原理就是定义了一个触发器,在插入数据时,如果自增列没有设值,就从一个自增值里取值。Oralce不像MySQL有自增列,不过我们可以通过序列(Sequence)和触发器(Trigger)来实现自增列。下面是一个例子。1. 再新建一个序列(Sequence)。CREATE SEQUENCE dept_seq MAXVALUE 9999999999 NOCACHE;2. 先新建一个表(Table)。CREATE TABLE ...

宇托 DataBase, Oracle, Sequence 0 条

在对Oralce进行备份和恢复时,一般情况下,序列(Sequence)是不在备份内容里的。那么如何进行备份呢。我们可以用删除原序列(Sequence),然后再新建序列(Sequence)的方法来备份和恢复。删除序列(Sequence)SQL的生成我们可以用以下SQL来生成删除序列(Sequence)SQLSELECT 'DROP SEQUENCE ' || SEQUENCE_NAME || ';' AS SQLTEXT F...

宇托 Oracle 0 条

Oracle的递归查询是一个很实用的功能,它可以通过一个节点去查询其所有父节点或者的值。它的语法结构如下:select * from tablename where 条件4 start with 条件1 connect by 条件2 AND 条件3递归查询有三点要注意的地方递归查询的Where语言在递归查询之后执行。在查询时要注意逻辑删除的数据,逻辑删除的条件应该加在star条件和conntect by条件里,而不是后面的Wher...

宇托 Deadlock, Oracle 0 条

这两天用Eclipse测试代码,在Debug模式下更新完数据还没Commit就直接在Eclipse里把程序停了。之后发现程序启不动了,总是停在数据更新的地方。自己想了想觉得是死锁的可能性最大,于是关了Eclipse,发现还是没有解锁。在网上找了找,Oracle解除死锁的方法如下。用DBA角色登入。用以下SQL执行自己想要的操作查看锁信息select b.owner, b.object_name, l.session_id, l.l...

宇托 Oracle 1 条

Oracle客户端实在是太大太全了,很多工具在开发中根本就用不到,可能DBA会用到吧。所以一直想不用安装Oracle客户端来实现连接数据库。目前也有比较多的数据库管理软件用JDBC直接连数据库的,如dbeaver,Aqua Data Stdio等等。不过比较好用的PL/SQL Developer和Toad好像都不支持这种方式。在网上找了一下,Oracle发布一个简略的客户端,不到一百兆。包括了OCI,JDBC,ODBC连接的必要工...