遇到问题了,在线等,大拿们帮忙sqlldr

kostion 2009-03-20 04:10:43
平台 redhat linux 企业4,Oracle10g。两个程序,一个生成文件,另一个把生成的文件倒入Oracle。用的是sqlldr,由于数据量很大,所以是一直连续调用sqlldr的,当sqlldr进程数量打到一定数量的时候,我就不让他在起sqlldr进程了。但是已经起来的sqlldr进程为什么不退出,Oracle高手帮看看
...全文
199 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kostion 2009-03-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 vc555 的回复:]
应该是你的JOB写的有问题,或者JOB中调用的过程有问题。
你看看dba_job_running和dba_jobs,里面有。
[/Quote]
谢谢大哥,问题是job调用的存储过程的问题,job调用了存储过程。结贴了,再次感谢
vc555 2009-03-21
  • 打赏
  • 举报
回复
应该是你的JOB写的有问题,或者JOB中调用的过程有问题。
你看看dba_job_running和dba_jobs,里面有。
kostion 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 vc555 的回复:]
你没加对,加对了就不会变。你具体怎么写的?
[/Quote]

还有,我刚刚改的 下一个执行日期2009-3-20 19:00:00 间隔哪里trunc(sysdate+1/24,'hh24')。我是18点设置的,为什么到19点job没有执行呢?
kostion 2009-03-20
  • 打赏
  • 举报
回复
trunc(sysdate+1/24,'hh24') 这么写的 有时候还是会变 trunc(sysdate+1/24,'hh24')+1/24/60*3 这样,有的是这里不会变,在下一个执行时间那,还停留在昨天,或前天。
vc555 2009-03-20
  • 打赏
  • 举报
回复
你没加对,加对了就不会变。你具体怎么写的?
kostion 2009-03-20
  • 打赏
  • 举报
回复
加了trunc,但是间隔时间不变,下次执行时间也会变,有没有什么原因导致这种情况
vc555 2009-03-20
  • 打赏
  • 举报
回复
会变是什么意思?
是说上次执行时间3点,下次执行就变成4点零几分了吗?
这个问题在interval上加trunc即可。
kostion 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 vc555 的回复:]
引用 6 楼 kostion 的回复:
是opendir 在readdir 只要目录里有文件,就起sqlldr,是连续的,中间没有sleep。

没必要这样做吧?
你可以定时把生成的所有文件一次性用sqlldr导入数据库啊。
sqlldr的控制文件这样写:
load data
infile '1xxx'
infile '2xxx'
infile '3xxx'
into table ....
[/Quote]

这位老兄,请教一个问题,Oracle的job比如说间隔执行时间是1小时,那这个时间会不会变。因为在我的项目里,间隔时间是一小时,但是它总是会变,它不变,下次执行日期的属性也会变,为什么,怎么解决啊
kostion 2009-03-20
  • 打赏
  • 举报
回复
哦,谢谢这位老兄,原因好像找到了,是因为数据量很大,在Oracle里有两张临时表切换的问题。其中一张表被锁了,所以sqlldr一直在等,所以线程不退出
vc555 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kostion 的回复:]
是opendir  在readdir  只要目录里有文件,就起sqlldr,是连续的,中间没有sleep。
[/Quote]
没必要这样做吧?
你可以定时把生成的所有文件一次性用sqlldr导入数据库啊。
sqlldr的控制文件这样写:
load data
infile '1xxx'
infile '2xxx'
infile '3xxx'
into table ....
kostion 2009-03-20
  • 打赏
  • 举报
回复
是opendir 在readdir 只要目录里有文件,就起sqlldr,是连续的,中间没有sleep。
vc555 2009-03-20
  • 打赏
  • 举报
回复
你脚本怎么写的
mumu_java 2009-03-20
  • 打赏
  • 举报
回复
帮顶
kostion 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vc555 的回复:]
引用楼主 kostion 的帖子:
但是已经起来的sqlldr进程为什么不退出,

该进程导的数据导完了吗?
[/Quote]


不知道啊,应该是倒完了,因为文件里的数据条数不超过30
vc555 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 kostion 的帖子:]
但是已经起来的sqlldr进程为什么不退出,
[/Quote]
该进程导的数据导完了吗?

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧