一. 业务场景 业务流程需要进行写入和更新的比较,所以有原表和历史表. 要求表中的ID唯一性,以及两张表的ID关联,另外后续可能数据库会进行迁移 二.方案选择 方案一:id设置为int型自增长. 这种做法编程简单,无需考虑id唯一性,由数据库帮忙维护.但是在此业务场景下存在缺点 1. 这里存在两张表关联.id自增长无法确保数据唯一性,也就无法保证原表与历史表进行数据映射.比如说,现在需要向原表A和历史表A_HISTORY表中插入相同的一条数据.插入A表后,发现无法取到A表的ID(A表的ID是主键…
在Oracle数据库中查看表空间使用状况是我们在实际应用中经常涉及到的,以下的内容就就是对Oracle 数据库中查看表空间使用状况时所要用到的SQL的描述,希望你能从中获得自己想要的东西. Oracle表空间的事情状况要经常查看,一般空闲比例过低的时候就应该考虑增大表看空间了.查看方法如下SQL: 方法一: select dbf.tablespace_name, dbf.totalspace "总量(M)", dbf.totalblocks as 总块数, dfs.freespace…
从远程oracle数据库上导出指定表的表结构语句有两种方法: 方法一:通过sql语句获得 1,make sure that you can connect the remote database. 2,enter into the sqlplus,and execute the command: select dbms_metadata.getddl('TABLE',tablename) from user_tables and you will get all the tables defin…
oracle中没有自增字段,可通过序列+触发器间接实现,cmd中sqlplus登录,直接运行即可.一般要经过一下几步: 1建立数据表 create table Test_Increase(           userid number(10) primary key,  /*主键,自动增加*/           username varchar2(20)           ); 2创建自动增长序列  CREATE SEQUENCE TestIncrease_Sequence INCREME…
1,删除表 drop 1.1 执行drop table table_name  语句 被 drop后的表被放在用户回收站(user_recyclebin)里,而没有被直接删除掉,回收站里的表可以被恢复. 通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句如下语句: flashback table user_recyclebin.object_name [user_recyclebin.original_name] to before drop [rename to ne…
1:创建临时表空间 create temporary tablespace user_temp tempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; 2:创建数据表空间 create tablespace user_data logging datafile 'Q:\oracle\p…
首先进入oracle用户,命令是: su - oracle sqlplus /nolog connect system/123456@ora11g 或者 [oracle@localhost ~]$   sqlplus Enter user-name:   system Enter password:    123456 然后执行一下语句 : ---建立表空间自动增长--CREATE  TABLESPACE classzhang_pt DATAFILE 'classzhang_pt.DBF' SI…
MS SQLServer的客户端工具做的的确比较好,直接右键,导出数据库就OK了,而且MS的客户端导出的是xxx.dbf文件,直接附加到别的数据库上就OK了 Oracle的sql developer就做的没有那么好,导出数据库功能就找了老半天 打开Oracle SQL Developer --> 工具 -->  数据库导出,如下图所示 然后选择数据库 --> 导出,OK…
select user from dual; select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间 select SYS_CONTEXT('USERENV','TERMINAL') from dual;--获得主机名 select SYS_CONTEXT('USERENV','language') from dual;--获得当前locale select dbms_random.random from dual…
导读]dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情.     dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情,如下: 1.查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual; 2.用来调用系统函数 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') f…