修改数据库可以使用数据库本身的计划任务(job),这种方式最好。
第二种是使用程序来做如java的timer和timetask。保证在项目启动的时候启动该计划任务。
public static void main(String[] args) {//定时任务
final Timer timer = new Timer();
// 指定任务在星期四中午12:00执行
Calendar calendar = CalendargetInstance();
calendarset(CalendarDAY_OF_WEEK, CalendarTUESDAY);
calendarset(CalendarHOUR_OF_DAY, 12);
calendarset(CalendarMINUTE, 00);
calendarset(CalendarSECOND, 0);
javautilDate time = calendargetTime();
timerschedule(new TimerTask() {
public void run() {
// 你要执行的 *** 作
try{
} catch (Exception e) {
// 出现异常的 *** 作:如取消计划任务
timercancel();
}
}
},time);
}
crontab里面的脚本,通常读取的是默认的环境变量,PATH里面不包含oracle数据库的路径。
解决方法
1如果有root权限可以这样来修改crontab:
1 su - user -c /path/yourscriptsh >/tmp/cronout
2在你的脚本中加上source /home/username/profile (如是csh 读取的$HOME/cshrc 或 $HOME/login)
#!/bin/bash
source /home/username/profile
背景:项目中遇到的问题,需要二区两台数据库之间同步一些表,以及导出sql文件同步至三区数据库。
新建SQL文件生成的目录D:mptmsudataDNLTBDIR。
二区数据库中执行下列语句:
1)新建二区数据库服务器到二区数据库服务器的数据库DATABASE LINK文件。
二区数据库中执行下列语句:
2)二区数据库服务器新建表DNL_TBJL。
二区数据库中执行下列语句:
在二区数据库服务器说新建相关表的触发器,触发器实现的功能是东区2区向西区直接通过DBLINK直接执行;东区2区向东区3区通过生成SQL文件到D:mptmsudataDNLTBDIR目录下;触发器的每次 *** 作都记录到表格DNL_TBJL(id, tables,czlx, SQL, TIME, BAK)内。
通过Windows系统自带的计划任务执行下面批处理实现数据入库
1)三区区数据库服务器新建表DNL_SQLJL。
三区数据库中执行下列语句:
2)三区区数据库服务器新建计划任务定期执行DQ3QRK-ZXWJbat批处理。
3)DQ3QRK-ZXWJbat批处理调用DQ3QRK-ZXSQLbat来执行入库 *** 作。
DQ3QRK-ZXWJbat语句如下:
DQ3QRK-ZXSQLbat语句如下:
以上就是关于java 定时的问题,我现在想实现的是每个月的第四个工作日中午十二点去扫描数据库,修改一个字段的状态全部的内容,包括:java 定时的问题,我现在想实现的是每个月的第四个工作日中午十二点去扫描数据库,修改一个字段的状态、shell脚本计划任务里无法入oracle数据库,求助!、Oracle不同数据库之间同步处理方案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)