Chinaunix首页 | 论坛 | 博客
  • 博客访问: 193606
  • 博文数量: 124
  • 博客积分: 2111
  • 博客等级: 大尉
  • 技术积分: 1505
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-18 13:40
文章分类

全部博文(124)

文章存档

2011年(5)

2010年(3)

2009年(1)

2008年(115)

我的朋友
最近访客

分类:

2008-02-25 15:21:33

 论坛上经常有人问,如何给导入文件加上时间戳标记.在这里把我曾经给过的两种方法总结一下.

  1.可以在DOS下从系统获得时间戳

  利用Dos命令取得时间戳:

  C:\>echo %date%

  2006-04-24 星期一

  C:\>echo %date:~0,10%

  2006-04-24

  接下来使用导出(exp)工具引用该时间戳就很容易了:

  exp userid=eygle/eygle file=d:\eygle%date:~0,10%.dmp log=d:\eygle%date:~0,10%.log

  2.使用sql脚本从数据库获得时间戳

  有朋友反应在NT下该命令执行结果与Windows2000和WindowsXp上不同,没有NT的环境可以试验(据网友说用""把date引用起来就可以了,如: "%date%",我没有测试过).

  我们也可以使用如下的SQL方式获得时间戳.

  首先编写一个doexp.sql脚本:

  column today new_val dt

  select to_char( sysdate, 'ddmmyyyy' ) today from dual;

  host exp userid=eygle/eygle tables=emp file=exp_prod_&dt..exp log=exp_prod_&dt..log

  exit

  再编写一个start.bat批处理脚本调用doexp.sql脚本:

  echo off

  set oracle_sid=eygle

  sqlplus eygle/eygle @doexp

  执行结果如下:

  E:\Itpub\ItpubTrain\Exp2>dir

  驱动器 E 中的卷是 SWAPDK

  卷的序列号是 F8BA-FCAC

  E:\Itpub\ItpubTrain\Exp2 的目录

  2003-10-07 15:14

.

  2003-10-07 15:14

..

  2003-08-26 15:18 170 doexp.sql

  2003-10-07 15:12 4,096 exp_prod_07102003.exp

  2003-10-07 15:12 335 exp_prod_07102003.log

  2003-08-26 15:18 4,096 exp_prod_26003.exp

  2003-08-26 15:18 312 exp_prod_26082003.log

  2003-10-07 15:42 4,096 exp_prod_30082003.exp

  2003-08-30 17:09 335 exp_prod_30082003.log

  2003-10-07 15:14 1,660 sqlnet.log

  2003-10-07 15:12 60 start.bat

  9 个文件 15,160 字节

  2 个目录 674,652,160 可用字节

 

 

SQL>  create table test (dat_1 date , dat_2 timestamp);

表已创建。

SQL> insert into test values (sysdate, systimestamp);

已创建 1 行。

SQL> select * from test;

DAT_1
-------------------
DAT_2
---------------------------------------------------------
2002-07-06 13:44:09
06-7月 -02 01.44.09.000001 下午

阅读(395) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~