A. 在unix下定时执行oracle的sql方法
在linux 有多种方式可以实现定时运行 使用最灵活的应该是crontab 举行在使用crontab必须特别注意环境变量问题 在此以执行oracle的sqlplus为例 说明crontab的使用方法 crontab 使用方法 crontab [ e | l | r ] 文件名 e:编辑任务 l:显示任务信息 r:删除定时执行任务信息 crontab中处理的文件格式为 分钟 小时 日期 月 星期 执行的文件名 *代表所有条件 * * * * rem /home/oracle/execsql 代表每个小时的 分钟时执行/home/oracle/execsql文件 对于sql等搏御需要在特定的环境变量下运行的命令 在执行文件中必须列出 如在oracle下执行sqlplus 必须按以下格式编写 $ cat execsql ORACLE_HOME=/ora ;export ORACLE_HOME ORACLE_OWNER=oracle;export ORACLE_OWNER ORACLE_SID=ora ;export ORACLE_SID ORACLE_BASE=/ora /app/oralce;export ORACLE_BASE LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH;export PATH NLS_LANG=AMERICAN_AMERICA ZHS CGB ;export NLS_LANG /ora /bin/sqlplus test /test @test ext (执行@test ext文件 数据库的用户名/密码为test /test ) 其中要求execsql为可执行的程序基答岩 $ ls al execsql rwxr xr x oracle dba Oct : execsql lishixin/Article/program/Oracle/201311/18376
B. 怎么样才能让sql数据库定期执行一句sql语句
create or replace procere MYPROCEDURE is
begin
UPDATE mac_vod SET vod_play_url= replace(vod_play_url, '第', '弟');
commit;
end MYPROCEDURE;
declare myjob number;
begin
DBMS_JOB.SUBMIT(
job => myjob,
what => 'myprocere;',
next_date => SYSDATE,
interval => 'sysdate+5/(24*60)');
commit;
end;
C. 请教,如何定时自动执行SQL
--"类型"中选择"Transact-SQL 脚本(TSQL)" --"数据库"选择执行命令的数据库 --"命令"中输入要执行的语句: Update City Set IsAccess=0--确定--"调度"项--新建调度--"名称"中输入调度名称 --"调度类型"中选择你的作业执行安排--定为每天调度一次,时间为18:40即可 --如果选择"反复出现" --点"更改"来设置你的时间安排 然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
D. 怎么样才能让sql数据库定期执行一句sql语句
使用SQL代理服务的”作业“(job)。以SQL2000为例。
1、在SQL企业管理器中,如图选择”作业“,新建一个作业
4、保存作业即可。
E. SQL Server 里需要定时执行某个存储过程,存储过程怎么写
1、管理->SQL Server代理->作业(按鼠标右键)->新建作业->
2、新建作业属性(常规)->名称[自定义本次作业的名称]->启用的方框内是勾号->
分类处可选择也可用默认的[未分类(本地)]->所有者默认为登录SQL Server用户[也可选其它的登录]->描述[填写本次工作详细描述内容];[ 创建作业分类的步骤:SQL Server代理->作业->右键选所有任务->添加、修改、删除 ]
3、新建作业属性(步骤)->新建->步骤名[自定义第一步骤名称]->类型[Transact-SQL(TSQL)脚本]->数据库[要操作的数据库]->命令[ 如果是简单的SQL直接写进去即可,也可用打开按钮输入一个已写好的*.sql文件如果要执行存储过程,填exec p_procere_name v_parameter1,[ v_parameter2…v_parameterN]]->确定(如果有多个步骤,可以再次调用下面的新建按钮;也可以对已有的多个步骤插入、编辑、删除);
4、建作业属性(调度)->新建调度->名称[自定义调度名称]->启用的方框内是勾号->调度->反复出现->更改[调度时间表]->确定(如果只要保存此作业,不要定时做可以把启用的方框内是勾号去掉);
5、建作业属性(通知)->用默认的通知方法就好[当作业失败时,写入Windows应用程序系统日志] ->确定。
F. 定期执行SQL语句
1.无论你的SQL版本是什么,首先需要把SQL代理启用!
2.你的SQL版本如果是2000,就点“工具”>"新建作业"(工具就是最上面那一排,有新建,编辑,什么乱七八糟的,你选工具)
3.通过提示点下一步,把你写的SQL语句加进去,记住他的语句最大长度是3200,超过这个长度就没戏了(一般不会超过的)。
4.下一步到有个地方可以选“调度”,你点进去调度,里面有立即执行,每天一次,每周一次(还有什么我忘了,反正时间可以自己随意定),下面有具体时间设定,你一看就会,设定好后,点“下一步”一直到最后一步,完成。
5。如果你的SQL版本是2005,就派晌直接点代理,有个文件夹就叫“作业”,你右键这个文件夹,有个提示“新建作业”,点进去设置就好了,原理都是一样的。就尘帆锋是比2000的界面漂亮点儿。轿锋
6.如果你用的SQL版本是2008,和2005差不多,我没怎么太多用过,如法炮制吧,祝你好运!!
G. Oracle中如何定时执行一条SQL语句
通过网上查询,找到一种方案,就是先在oracle里面对要定时的sql写成存储过程,再用DBMS_scheler对存储过程进行定时执行。
在数据库中新建了一个表MY_JOB_TEST
在数据库中新建了一个表MY_JOB_TEST
在数据库中新建了一个表MY_JOB_TEST
在PLSQL中,执行下面语句模拟存储过程的调用,执行后要点提交才有反应
[sql] view plain
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
GrantCreateJobTo指定用户名
SQL>CREATEORREPLACEPROCEDURE
JOB_TEST
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
- (此处要执行存储过程不能用exec JB_TEST,这种执行方式只能在命令行中使用)
SQL>BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name=>'SCHEDULER_TEST',
job_type=>'STORED_PROCEDURE',
job_action=>'JOB_TEST',
start_date=>sysdate,
repeat_interval=>'FREQ=MINUTELY;INTERVAL=1');
END;
- 但是这样子定时任务并不会执行。
SQL>SELECT*FROMUSER_SCHEDULER_JOBS;
- 此时我们可以看到enable的状态是false的,因此我们需要去启动定时任务
SQL>BEGIN
DBMS_SCHEDULER.ENABLE('SCHEDULER_TEST');
然后下面建立一个存储过程JOB_TEST
(注意,这里用户需要CREATE JOB权限,可以用超级管理员用户执行下面语句给指定用户赋予该权限)
[sql] view plain
[sql] view plain
使用DBMS_SCHEDULER进行定时,这里为每分钟执行一次
[sql] view plain
我们可以用下面的命令查看一下scheler的状态
[plain] view plain
[plain] view plain
dbms_scheler.enable('j_test'); --启用jobs
dbms_scheler.disable('j_test'); --禁用jobs
dbms_scheler.run_job('j_test'); --执行jobs
dbms_scheler.stop_job('j_test'); --停止jobs
dbms_scheler.drop_job('j_test'); --删除jobs
然后再查询job的enable装态,发现为true了。
然后查看MY_JOB_TEST表,发现每分钟会往里面添加记录。
当需要修改定时任务或者调度的其他属性时,可以用下面的
dbms_scheler.set_attribute('调度名','调度属性','调度值');
至此,定时任务完成。
H. 在UNIX环境下怎样定时执行某个sql脚本
第一种方法:
在命令行下(未连接数据库),输入
mysql
-h
localhost
-u
root
-p123456
<
F:\hello
world\niuzi.sql
(注意路径不用加引号的!!)
回车即可.
第二种方法:
在命令行下(已连接数据库,此时的提示符为
mysql>
),输入
source
F:\hello
world\niuzi.sql
(注意路径不用加引号的)
或者
\.
F:\hello
world\niuzi.sql
(注意路径不用加引号的)
回车即可.
I. 如何定时的去执行SQL语句
1.把要执行的SQL语句准备好,例如:
use ttNew //使用ttNew数据库
Go
insert into Users(name) values(" ") //往表Users插入一条记录
将该语句保存在文件user.sql里,放在d盘跟目录下。
2.写一个批处理文件,例如:
再新建一个记事本,里边写上语句osql -E -i d:\user.sql,保存为11.bat
3.利用系统任务计划调用批处理文件,执行SQL语句
在系统程序->附件->系统工具->任务计划
添加新任务计划,点下一步,再点浏览,找到11.bat文件,后,选择执行时间,点下一步。一直点,最后输入本机的密码,点完成。