Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL开发人员-使用作业向导PL/SQL进行基本选择查询_Sql_Oracle_Plsql_Oracle Sqldeveloper - Fatal编程技术网

Oracle SQL开发人员-使用作业向导PL/SQL进行基本选择查询

Oracle 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

我一直在尝试让SQLDeveloper定期自动运行查询(在示例HR数据库上)。根据我的研究,我确定对我来说最好的选择是使用作业向导&PL/SQL(它在哪里称为DBMS\u调度器?)

我创建了一个每5分钟重复一次的“时间表”:每5分钟一次

以下是迄今为止我在“工作细节”部分的内容: 职务名称:选择员工

作业类:SYS.DEFAULT\u作业类

作业类型:PL/SQL块

何时执行作业:计划

时间表:系统每5分钟一次

PL/SQL

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,那么您应该用它来标记。