从ORACLE中用语句导出序列
今天从数据库中导出几张表,但发现需要的序列都没导出来,于是网上找找方法,发现了如下语句
select
'create sequence USERNAME.'|| t.sequence_name || ' minvalue '||MIN_VALUE||' maxvalue '||MAX_VALUE||' start with '||LAST_NUMBER||' increment by '||INCREMENT_BY||' cache '||CACHE_SIZE||' ;'
from dba_sequences t where SEQUENCE_OWNER='USERNAME';
注意语句中的USERNAME 第一个username是你导入到的数据库用户名, 第二个username是你所导出数据库的用户名注意要大写
例如从testfrom用户中导出序列到testto中
select
'create sequence testto.'|| t.sequence_name || ' minvalue '||MIN_VALUE||' maxvalue '||MAX_VALUE||' start with '||LAST_NUMBER||' increment by '||INCREMENT_BY||' cache '||CACHE_SIZE||' ;'
from dba_sequences t where SEQUENCE_OWNER='TESTfrom';
查询之后倒成文本,然后在到数据库中运行,重新建立序列 ,问题解决。
相关文档:
Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了,查询起来很慢。解决的方法是把该表所占用的表空间缩小,或者说释放表空间。
alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后,表的行号rowid会发生变化,而基于 ......
--锁的概念
锁出现在数据共享的场合,用来保证数据的一致性。当多个会话同时修改一个表时,需要对数据进行相应的锁定。
-- 锁的模式,有以下几种模式
0:none
1:null 空
2:Row-S 行共享(RS):共享表锁,sub share
3:Row-X 行独占(RX):用于行的修改,sub ex ......
oracle参数nls_length_semantics:
默认:byte
create table test (a varchar(20),b number)
等同于:
CREATE TABLE HXG.TESTNLS
(
A VARCHAR2(20 BYTE),
B NUMBER
)
varchar(20)由参数nls_length_semantics控制
/////////////////////////////////////////////////////// ......
跟其他语言的参数差不多,使用时要把把真实数据传过去替代
优点记得一些,如果在查询中使用直接量(常量),那么每个查询都将是一个全新的查询,必须对查询进行解析、限定(命名解析)、安全性检查、优化等即重新生成执行计划。而使用了以后就可以重复使用最先创建的执行计划。 ......
import java.net.url;
import java.sql.*;
public class javaoracle {
public javaoracle() {
}
public static void main(string[] args){
try
{
try{
class.forname("oracle.jdbc.driver.oracledriver");
}
catch(java.lang.classnotfoundexception e)
{
system.err.print(e.getmessage());
} ......