Asp.net 用于在Oracle中从表中选择所有行的存储过程

Asp.net 用于在Oracle中从表中选择所有行的存储过程,asp.net,oracle,stored-procedures,Asp.net,Oracle,Stored Procedures,请注意:有几个帖子是关于这个的,但我没有得到这些,因为一些关键词和为什么使用? 如何在Oracle中创建一个简单的存储过程,从表中选择所有行。我想创建与下面相同的脚本,用SQL编写。以及如何在Oracle中执行该过程并将其放置在ASP.NET OracleCommand对象中 如何在Oracle中重新编写此SQL存储过程 CREATE PROCEDURE spGetData AS Begin SELECT * from My_Table; End 执行是sql execute spGetDat

请注意:有几个帖子是关于这个的,但我没有得到这些,因为一些关键词和为什么使用? 如何在Oracle中创建一个简单的存储过程,从表中选择所有行。我想创建与下面相同的脚本,用SQL编写。以及如何在Oracle中执行该过程并将其放置在ASP.NET OracleCommand对象中

如何在Oracle中重新编写此SQL存储过程

CREATE PROCEDURE spGetData
AS
Begin
SELECT * from My_Table;
End
执行是sql

execute spGetData
您必须要根据相应的列声明一些变量,只声明所需的感兴趣的列

我想你的错误一定是在陈述中预期的? 试试这个

您必须要根据相应的列声明一些变量,只声明所需的感兴趣的列

我想你的错误一定是在陈述中预期的? 试试这个


没有太多的声誉,所以不要评论,而是添加答案

要在Oracle中编写存储过程,请选择需要包含refcursor的所有行,作为游标,它将充当指针,逐个指向Oracle结果集并给出结果

Oracle的存储过程

CREATE OR REPLACE PROCEDURE spGetData(cursorParam OUT SYS_REFCURSOR)
 IS
  BEGIN
   OPEN cursorParam FOR
    SELECT * from My_Table;
END ;
要执行它,您需要oracle

   var c refcursor;
    execute spGetData(:c)
   print c;
不太了解ASP.NET,但可能需要添加游标参数

  OracleCommand.Parameters.Add("cursorParam ", OracleType.Cursor).Direction =
ParameterDirection.Output;

谢谢。

没有太多的声誉,所以不要添加评论,而是添加答案

要在Oracle中编写存储过程,请选择需要包含refcursor的所有行,作为游标,它将充当指针,逐个指向Oracle结果集并给出结果

Oracle的存储过程

CREATE OR REPLACE PROCEDURE spGetData(cursorParam OUT SYS_REFCURSOR)
 IS
  BEGIN
   OPEN cursorParam FOR
    SELECT * from My_Table;
END ;
要执行它,您需要oracle

   var c refcursor;
    execute spGetData(:c)
   print c;
不太了解ASP.NET,但可能需要添加游标参数

  OracleCommand.Parameters.Add("cursorParam ", OracleType.Cursor).Direction =
ParameterDirection.Output;

谢谢。

Oracle 12c有一项新功能,只需对过程进行一些更改:

SQL> create table My_Table as select 1 a from dual;

Table created.

SQL> CREATE PROCEDURE spGetData
  2  AS
  3     c1 sys_refcursor;
  4  Begin
  5     open c1 for
  6     SELECT * from My_Table;
  7
  8     dbms_sql.return_result(c1);
  9  End;
 10  /

Procedure created.

SQL> execute spGetData

PL/SQL procedure successfully completed.

ResultSet #1

         A
----------
         1

SQL>

Oracle 12c有一项新功能,只需要对过程进行一些更改:

SQL> create table My_Table as select 1 a from dual;

Table created.

SQL> CREATE PROCEDURE spGetData
  2  AS
  3     c1 sys_refcursor;
  4  Begin
  5     open c1 for
  6     SELECT * from My_Table;
  7
  8     dbms_sql.return_result(c1);
  9  End;
 10  /

Procedure created.

SQL> execute spGetData

PL/SQL procedure successfully completed.

ResultSet #1

         A
----------
         1

SQL>

在我看来,这是答案&不是注释,所以我不必担心。当执行一个窗口打开并请求一个值时,看起来是参数。如果我提供任何值或不提供任何值,它将为invalidcursorParam提供一个错误。参数类型为OUT,它不在参数中,它不应该请求输入,可能是您做错了。在我看来,这是答案&不是注释,所以我不必担心。执行窗口打开时,请求值,看起来是参数。如果我提供任何值或不提供任何值,它会为invalidcursorParam提供一个错误。参数类型为OUT。它不在参数中,它不应该要求输入,可能是您做错了。我有很多列,为什么我要逐个声明,我需要全部显示。我有很多列,为什么我要逐个声明,我需要全部显示。