使用Oracle SQL Developer中的SP从表中选择所有记录

使用Oracle SQL Developer中的SP从表中选择所有记录,oracle,stored-procedures,oracle11g,oracle10g,oracle-sqldeveloper,Oracle,Stored Procedures,Oracle11g,Oracle10g,Oracle Sqldeveloper,我正在使用SQL Oracle构建一个存储过程。我正在尝试构建下面SQL查询的存储过程。我想将这些数据返回到C程序 select * from employee_master 我试过跟随。这是正确的吗 CREATE OR REPLACE PROCEDURE EMPLOYEE_SELECTALL (p_recordset OUTSYS_REFCURSOR)AS BEGIN OPEN p_recordset FOR SELECT * FROM EMPLOYEE_MASTER; END EMP

我正在使用SQL Oracle构建一个存储过程。我正在尝试构建下面SQL查询的存储过程。我想将这些数据返回到C程序

select * from employee_master
我试过跟随。这是正确的吗

CREATE OR REPLACE PROCEDURE EMPLOYEE_SELECTALL (p_recordset OUTSYS_REFCURSOR)AS 
BEGIN
OPEN p_recordset FOR
SELECT
 *
FROM
EMPLOYEE_MASTER;

END EMPLOYEE_SELECTALL;

如果您希望构建一个返回此类结果集的存储过程,那么首先应该检查是否确实需要这样做。对于Oracle来说,这是一种偶然的、不推荐的方式。但是如果你真的需要,你应该使用

在SQL Developer中执行存储过程后,它会自动返回任何输出供您查看,包括一个或多个ref游标


如果单击上面的REF CURSOR链接,您可以看到一个示例。除了out和sys_refcursor之间需要的空间外,它是正确的。但最正确的做法是根本不要执行如此糟糕的过程,只选择所需的记录。但是执行SP后我如何查看结果。我是Oracle SQL Developer的新手。你说你想将数据返回到C程序,但你提到了SQL Developer;那么您想在SQLDeveloper中查看它们吗?您可以在哪里检查结果。首先,您可以了解为什么要将查询包装到过程中。我想将数据返回到c程序。我只想检查db级别的值,比如sql。有什么办法吗?我仍然不确定你是不是在问如何从C调用和使用它,它可能太宽了,需要不同的标签;或者仅仅是如何从SQLDeveloper运行它来测试它,这将是一个重复。