【发布时间】:2021-05-22 17:24:10
【问题描述】:
我已经为此苦苦挣扎了一段时间。
我想创建 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 数据库有点迷茫。
【问题讨论】:
-
关于第一个例子,我们可以使用视图来存储查询。您可以拥有返回游标的过程,但您需要编写代码来处理游标,直到 Oracle 12.1(请参阅stackoverflow.com/a/40360471/230471)。除非查询是复杂和动态的,否则不值得为这类事情使用过程。
标签: oracle stored-procedures plsql oracle11g