Oracle SQL开发人员-使用作业向导PL/SQL进行基本选择查询
我一直在尝试让SQLDeveloper定期自动运行查询(在示例HR数据库上)。根据我的研究,我确定对我来说最好的选择是使用作业向导&PL/SQL(它在哪里称为DBMS\u调度器?) 我创建了一个每5分钟重复一次的“时间表”:每5分钟一次 以下是迄今为止我在“工作细节”部分的内容: 职务名称:选择员工 作业类:SYS.DEFAULT\u作业类 作业类型:PL/SQL块 何时执行作业:计划 时间表:系统每5分钟一次 PL/SQLOracle SQL开发人员-使用作业向导PL/SQL进行基本选择查询,sql,oracle,plsql,oracle-sqldeveloper,Sql,Oracle,Plsql,Oracle Sqldeveloper,我一直在尝试让SQLDeveloper定期自动运行查询(在示例HR数据库上)。根据我的研究,我确定对我来说最好的选择是使用作业向导&PL/SQL(它在哪里称为DBMS\u调度器?) 我创建了一个每5分钟重复一次的“时间表”:每5分钟一次 以下是迄今为止我在“工作细节”部分的内容: 职务名称:选择员工 作业类:SYS.DEFAULT\u作业类 作业类型:PL/SQL块 何时执行作业:计划 时间表:系统每5分钟一次 PL/SQL CREATE OR REPLACE PROCEDURE get_emp
CREATE OR REPLACE
PROCEDURE get_emp_rs (p_deptno IN HR.FIRST_NAME,
p_recordset OUT SYS_REFCURSOR) AS
BEGIN
OPEN p_recordset FOR
SELECT FIRST_NAME,
LAST_NAME
FROM
HR.EMPLOYEES
WHERE FIRST_NAME=p_recordset
END;
/
它返回一个错误:
“遇到符号“/”时,应满足以下条件之一:(begin case declare)…..”,其余的将从屏幕上删除
我走对了吗?为了使查询每5分钟运行一次,正确的编写方法是什么?我以前从未使用过Oracle SQL Developer
提前谢谢
我有一个新错误:第1行第750列PLS-00103:遇到符号“创建” PL/SQL负载是我们希望作业执行的代码。因此,您似乎正试图计划每五分钟创建一次存储过程。计划程序需要的是可执行的PL/SQL调用,而不是DDL 因此,您需要首先创建存储过程,然后启动作业向导。PL/SQL块应该是这样的:
declare
rc sys_refcursor;
begin
get_emp_rs ('MAYZIE', rc);
end;
这向我们指出了您的场景的潜在问题:作业在后台运行。作业无法接受用户输入或显示输出。因此,虽然您的作业将每五分钟运行一次,但您永远不会看到结果集。您需要一个过程,它将结果写入某个地方(一个表、一个文件),其他程序可以读取和显示这些结果
我有一个新错误:第1行第750列PLS-00103:遇到符号“创建” PL/SQL负载是我们希望作业执行的代码。因此,您似乎正试图计划每五分钟创建一次存储过程。计划程序需要的是可执行的PL/SQL调用,而不是DDL 因此,您需要首先创建存储过程,然后启动作业向导。PL/SQL块应该是这样的:
declare
rc sys_refcursor;
begin
get_emp_rs ('MAYZIE', rc);
end;
这向我们指出了您的场景的潜在问题:作业在后台运行。作业无法接受用户输入或显示输出。因此,虽然您的作业将每五分钟运行一次,但您永远不会看到结果集。您需要一个将结果写入某个位置(表、文件)的过程,该位置可以被其他程序读取和显示。用分号结束SQL语句。我有一个新错误:第1行第750列PLS-00103:在预期以下情况之一时遇到符号“CREATE”:(开始情况12月)。。用分号结束SQL语句。我有一个新错误:第1行第750列PLS-00103:在预期以下情况之一时遇到符号“CREATE”:(begin case dec.)。。“为了让我清楚地理解,我需要:1.创建一个过程?:-Procedure->right click->new Procedure可重复使用。我已经多年没有使用SQL Developer了,所以我的内存相当生锈。我之前的评论被截断了,我想问的是:为了让我清楚地理解,我需要:1.创建一个过程?:-Procedure->right click->new Procedure(获取emp)-代码:从HR.EMPLOYEES中选择名字、姓氏[我如何指定它以将结果写入某个地方(即任何/某些新表/文件)?2.作业->右键单击新建作业(向导)PL/SQL块:声明rc系统参照光标;开始获取emp('MAYZIE',rc);end;?请原谅我这篇文章的特殊性,我以前从未使用过SQL developer我也不知道SQL developer,但我非常怀疑是否有任何方便的右键单击选项可以将过程中的refcursor输出捕获到文件中。顺便说一句,如果问题是关于专门使用SQL developer,那么您应该用它来标记它。正如我所说的清楚地理解,我需要:1.创建一个过程?:-Procedure->right click->new Procedure可重复使用。我已经多年没有使用SQL Developer了,所以我的记忆相当生锈。我之前的评论被打断了,我想问的是:为了让我清楚地理解,我需要:1.创建一个过程?:-Procedure->right click->new Procedure(获取内存)-代码:从HR.EMPLOYEES中选择名字和姓氏[我如何指定它以将结果写入某个地方(即任何/某些新表/文件)?2.作业->右键单击新建作业(向导)PL/SQL块:声明rc sys\u refcursor;开始获取emp('MAYZIE',rc);end;?请原谅我这篇文章的特殊性,我以前从未使用过SQL developer,我也不知道SQL developer,但我非常怀疑是否有任何方便的右键单击选项可以将过程中的refcursor输出捕获到文件中。顺便说一句,如果问题是关于专门使用SQL developer,那么您应该用它来标记。