首页 > 解决方案 > Oracle 数据库中的存储过程 (11g)

问题描述

我已经为此苦苦挣扎了一段时间。

我想创建 3 个不同的存储过程,但我不太确定语法以及如何在 Oracle 数据库(版本 11g)中执行它们

我的表包含这些列,这是定义:

身份证号码

金额 VARCHAR2(30)

日期 VARCHAR2(30)

我想创建一个允许我从单个表中获取所有行的过程,这就是我所做的:

create or replace PROCEDURE GetAllRows(cursor_ OUT SYS_REFCURSOR) AS
BEGIN
OPEN cursor_ FOR
    SELECT *
      FROM My_Table  
END GetAllRows;   

没事吧?我应该如何执行它?


另外,我想在该表中插入一些信息,所以我创建了另一个 SP:

CREATE PROCEDURE insert_row(
                    id IN NUMBER,
                    amount IN VARCHAR,
                    date IN VARCHAR

                        )
IS
BEGIN

INSERT INTO My_table(id, amount, id) VALUES (id, amount, date);

END insert_row;

没事吧?我应该如何执行它?

我对 Oracle 数据库有点迷失了。

标签: oraclestored-proceduresplsqloracle11g

解决方案


请尝试使用以下代码获取存储过程输出。

variable rc refcursor;
exec GetAllRows( :rc );
print rc;

推荐阅读