存档

文章标签 ‘oracle’

Oracle导出数据

2010年3月3日 没有评论

导出数据两种方式:
一、以OMS的方式(最后失败了。使用的命令行方式):
1、  以OMS的方式登录数据库。默认用户名为sysman,密码为oem_temp,如果没有改密码登录成功后会弹会一个更改口令的对话框。输入你的新密码和确认密码,然后确定。

注:如果忘记了新密码,也可以恢复到默认密码状态下:在%home_path%\oracle90\sysman\admin目录中有一个vduResetSysman.sql文件,执行,就能恢复到默认密码。
阅读全文...

分类: Java 标签: , ,

在java中对Oracle 日期类型字段的操作

2008年8月28日 没有评论

表 book 中有name varchar2(20)//书籍名称,buydate Date //购买日期 两个字段。

  已经创建了数据库连接Connection conn;

  方法一、使用java.sql.Date实现比较简单的yyyy-mm-dd格式日期。

  java.sql.Date不支持时间格式。切记不要使用new java.sql.Date(int year,int month,int date),因为还要处理时间差问题。

  PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");

  java.sql.Date buydate=java.sql.Date.valueOf("2005-06-08");
  pstmt.setString(1, "Java编程思想");
  pstmt.setDate(2,buydate );
  pstmt.execute();

  方法二、使用java.sql.Timestamp,同上不使用new Timestamp(....)

  PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");

  java.sql.Timestamp buydate=java.sql.Timestamp.valueOf("2004-06-08 05:33:99");
  pstmt.setString(1, "Java编程思想");
  pstmt.setTimestamp(2,buydate );
  pstmt.execute();

  方法三、使用oracle 的to_date内置函数

PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
  String buydate="2004-06-08 05:33:99";
  pstmt.setString(1, "Java编程思想");
  pstmt.setString(2,buydate );
  pstmt.execute();

  附:oracle日期格式参数 含义说明
  d: 一周中的星期几
  day: 天的名字,使用空格填充到9个字符
  dd: 月中的第几天
  ddd: 年中的第几天
  dy: 天的简写名
  iw: ISO标准的年中的第几周
  iyyy: ISO标准的四位年份
  yyyy: 四位年份
  yyy,yy,y: 年份的最后三位,两位,一位
  hh: 小时,按12小时计
  hh24: 小时,按24小时计
  mi: 分
  ss: 秒
  mm: 月
  mon: 月份的简写
  month: 月份的全名
  w: 该月的第几个星期
  ww: 年中的第几个星期

分类: Java 标签: , , ,

ORACLE Sequence 自增长

2008年8月27日 1 条评论

Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。

Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。

根据我个人理解,Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用,非常不错,呵呵,不过很郁闷的各个数据库厂商尿不到一个壶里--各有各的一套对Sequence的定义和操作。在此我对常见三种数据库的Sequence的定义和操作做一个对比和总结,以便日后查看。
一、定义Sequence

定义一个seq_test,最小值为1,最大值为99999999999999999,从1开始,增量的步长为1,缓存为20的循环排序Sequence。

Oracle的定义方法:
create sequence seq_test
minvalue 1
maxvalue 99999999999999999
start with 1
increment by 1
cache 20
cycle
order;

DB2的写法:
create sequence seq_test
       as bigint
       start with 20000
       increment by 1
       minvalue 10000
       maxvalue 99999999999999999
       cycle
       cache 20
       order;

PostgreSQL的写法:
create sequence seq_test
       increment by 1
       minvalue 10000
       maxvalue 99999999999999999
       start 20000
       cache 20
       cycle;

阅读全文...

分类: 编程 标签: , ,