如果是pl/sql窗口就得用 beging 过程名 end; 包含起来作为匿名块来执行。create or replace procedure job_table asv_sql varchar2(2000);begin v_sql:='create table job_test2 as select from job_test'; EXECUTE immediate v_sql; EXCEPTION WHEN OTHERS THEN rollback;end job_table; 存储过程内不能直接使用create或alter,需要使用EXECUTE执行动态语句才可以 还有执行存储过程,必须在命令窗口内执行一。 概述Oracle存储过程开发的要点是:
1; 使用Notepad文本编辑器,用Oracle PL/SQL编程语言写一个存储过程;
2; 在Oracle数据库中创建一个存储过程;
3; 在Oracle数据库中使用SQLPlus工具运行存储过程;
4; 在Oracle数据库中修改存储过程;
5; 通过编译错误调试存储过程;
6; 删除存储过程;二。环境配置
包括以下内容:
1; 一个文本编辑器Notepad;
2; Oracle SQLPlus工具,提交Oracle SQL和PL/SQL 语句到Oracle database。
3; Oracle 10g express数据库,它是免费使用的版本;
需要的技巧:
4; SQL基础知识,包括插入、修改、删除等
5; 使用Oracle's SQLPlus工具的基本技巧;
6; 使用Oracle's PL/SQL 编程语言的基本技巧;三。写一个存储过程
在Notepad, 写下:
CREATE OR REPLACE PROCEDURE skeletonISBEGINNULL;END;把文件存为skeletonsql
让我们一行行遍历这个存储过程:
1 CREATE OR REPLACE PROCEDURE skeleton2 IS3 BEGIN
4 NULL;5 END;行1:CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;行2:IS关键词表明后面将跟随一个PL/SQL体。
行3:BEGIN关键词表明PL/SQL 体的开始。
四。创建一个存储过程
SQL语句CREATE OR REPLACE PROCEDURE在Oracle数据库中创建、编译和保存一个存储过程。
从Window打开SQLPlus并且从SQLPlus 登录到你的数据库;打开skeletonsql文件。
在SQL命令提示符下输入以下命令:
SQL@skeletonSQL/SQLPlus装载skeletonsql文件的内容到 SQLPlus缓冲区并且执行SQLPlus语句;SQLPlus 会通知你存储过程已经被成功地创建。作业里定时执行存储过程定时作业的制定
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
EXEC 存储过程名 --该存储过程用于创建表
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行
设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定1、打开SQL Server Management Studio,SQL Server代理--作业--点右键--新建作业
2、作业的名称取为:test,并进行说明,若作业的数量太多,以方便区别; 这里写上定时执行存储过程Pr_test,确定保存
3、点击常规下面的步骤,按箭头指示,新建步骤
4、取名步骤名称:exec pr_test,注意选择存储过程所在的数据库;录入需要执行的命令:exec pr_test ,确定保存
若有其它参数命令也可以编写
5、新建计划,进放计划属性设置窗口
6、依然要填写计划的名称:exec pr_test
计划类型:重复计划
时间频率:每月的26日的12点30分自动执行一次
持续时间:无结束日期
确定保存到此基本功能已经设置完成,额外其它功能可以根据需要进行增加
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)