如何从oracle抽数据,oracle增量抽取数据的方式

用oracle从每个分类中随机抽取10%的数据怎么实现

select col1,col2,type

创新互联专业网站设计制作、网站设计,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文推广等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。

from (select col1,col2,type,rn,max() over(partitio by type) as rn_max

from (select col1,col2,type,row_number() over (paritition by type order by dbms_random.value) as rn

from tablename ) t

) p

where rn/rn_max=0.1

;

sample不确定能不能用分析函数,但是主要是用来全表取sample的

oracle 数据怎么导入?

我给你一些数据库常用的导入导出命令吧:\x0d\x0a该命令在“开始菜单运行CMD”中执行\x0d\x0a一、数据导出(exp.exe)\x0d\x0a1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochu.dmp文件中\x0d\x0aexp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、将数据库orcl中scott用户的对象导出\x0d\x0aexp scott/accp@orcl file=d:\daochu.dmp owner=(scott)\x0d\x0a\x0d\x0a3、将数据库orcl中的scott用户的表emp、dept导出\x0d\x0aexp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)\x0d\x0a\x0d\x0a4、将数据库orcl中的表空间testSpace导出\x0d\x0aexp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)\x0d\x0a\x0d\x0a二、数据导入(imp.exe)\x0d\x0a1、将d:\daochu.dmp 中的数据导入 orcl数据库中。\x0d\x0aimp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y\x0d\x0a\x0d\x0a3、将d:\daochu.dmp中的表emp导入\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp tables=(emp)

oracle 数据抽取

建议java代码调用一个存储过程。

存储过程中使用 create table 的 方式实现数据的导入。

如果需要并行,使用oracle自身的临时表。

对oracle数据库抽取指定条件的数据

用eclipse

首先在oracle文件下找到jdbc文件,里面的lib文件下有个class12.zip

在eclipse里新建个项目,建好后在左边右击那个项目图标,选择属性(最下面的),里面有个java build path,点进去,找到add external jars按键,点一下,把那个class12.zip加载进来,然后可以开始写代码了。

我的代码如下:

import java.sql.*;

public class connect {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

try{

Class.forName("oracle.jdbc.driver.OracleDriver");

}catch(ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Connection con = null;

Statement stmt = null;

ResultSet rs = null;

try{

String url="jdbc:oracle:thin:@服务器ip地址:端口号:数据库名字";

String user="用户名";

String password="密码";

String str="INSERT INTO ZZZ_2 VALUES('041110018','JHDK')";

con = java.sql.DriverManager.getConnection(url,user,password);

// 创建状态

stmt = con.createStatement();

// 执行SQL语句,返回结果集

//int rowcount = stmt.executeUpdate(str);

int j = stmt.executeUpdate("update ZZZ_2 set NAME='dbt' where ID=21");

int k = stmt.executeUpdate("delete from ZZZ_2 where ID=41110020");

rs = stmt.executeQuery("SELECT * FROM ZZZ_2");

// 对结果集进行处理

while (rs.next()) {

int id = rs.getInt("ID");

String name = rs.getString("NAME");

//Integer age = rs.getObject("age") == null ? null : rs.getInt("age");

System.out.println(id + ": " + name);

} }catch(SQLException e){

e.printStackTrace();}

// 释放资源

finally{

try{

rs.close();

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try{

stmt.close();

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try{

con.close();

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

注意,上面的ip地址什么的要填对,ZZZ_2是我随便建的表,你改成自己的表名就行了

oracle的dbf文件如何把数据导出来

oracle的dbf文件导出数据:

只有DBF文件的情况下做Oracle 数据恢复

1)数据库所有的DBF文件都在,没有缺失,也没有损坏

这个情况是最简单的 自己建一个参数文件INIT.ORA,并基于这些DBF文件去创建控制文件,然后尝试打开数据库即可。如果说数据文件都是干净的CLEAN的,那么直接可以打开。如果数据文件是DIRTY的,这里由于没有REDO LOG了,所以需要以隐藏参数等方式打开数据库。

2) 数据库DBF有少量缺失,缺失主要是非SYSTEM01.DBF的数据文件,没有损坏

这种情况在 1)的基础上将缺失的数据文件OFFLINE DROP掉就好了,因为对应的数据文件都没了,那么丢了对应数据文件上的数据也很正常

3) 数据库DBF有少量缺失,缺失主要是非SYSTEM01.DBF的数据文件,非SYSTEM01.dbf的数据文件有少量损坏

这种情况在 2)的基础上打开数据库问题并不大,但打开数据库后 由于其他表空间数据文件上有少量损坏,所以具体访问用户数据时可能出现ORA-1578、ORA-8103、ORA-1410、ORA-00600等错误,还是比较容易克服的

4) 数据库DBF有少量缺失,缺失主要是非SYSTEM01.DBF的数据文件,SYTEM01.DBF有损坏

这种情况下打开数据库就不容易了,可能需要用到BBED技术去修改SYSTEM01.DBF,以便才能打开数据库

5) 只有部分DBF,其中还缺失了SYSTEM01.DBF

这种情况不要指望能打开数据库,只能使用PRM-DUL之类的软件 来直接抽取数据

以上情况1)~4) 只要SYSTEM01.DBF还在或者损坏的不是太严重,那么都可以由专业技术人员去打开数据库后导出数据,但是在情况5)下只能使用DUL类工具去抽取数据了。


当前标题:如何从oracle抽数据,oracle增量抽取数据的方式
URL地址:http://pwwzsj.com/article/hcgcdo.html