尝试执行一个简单的存储过程 - 救命!找不到在这里有效的答案

问题描述 投票:0回答:1

我对 SQL 完全陌生,正在尝试执行一个我什至不确定我是否正确编写的存储过程。它应该给出给定医生的患者总数,这是我在 Oracle SQL Developer 中设法编译的存储过程:

CREATE PROCEDURE Totalptcount
    (drid IN INTEGER,
     totalpts OUT INTEGER)
IS
BEGIN
    SELECT COUNT(pts) AS totalpts
    INTO totalpts
    FROM ptlist
    WHERE drid = '1';
END Totalptcount;

我正在尝试输入值“1”并获取 ID 为“1”的 dr 的总 pt 计数(行数)。

我该如何执行这个?提前非常感谢

尝试了我在这里找到的一些类似问题的答案,但没有一个有效。我也不知道如何使用游标或声明,但我认为我的存储过程不需要它们(我认为)。我试过了:

var totalpts NUMBER
EXEC totalptcount (:totalpts);
SELECT totalpts; 
- This gave the INTO clause requirement error

BEGIN
    Exec totalptcount
END; 
- I don't really know what I'm doing and just tried this

BEGIN
    Exec totalptcount('1')
END;
- Trying to input value '1' to get out the count
- Unknown command error

提前谢谢您!

sql oracle stored-procedures plsql execute
1个回答
0
投票
After your compile it, go into the connections window.
Open the schema.
One of the entries should be for procedures.
Open your procedure and you should see a tool which is a green triangle.
Click that and it will open a dialog that can be used torun your procedure.

您可能会在 https://www.thatjeffsmith.com/ 上找到一些阅读材料,可能有助于缩短您的学习曲线。

我建议您将 drid 参数重命名为 input_drid,并使用它来替换查询中的硬编码“1”。 这样你就可以选择任何你想要的博士 ID。

© www.soinside.com 2019 - 2024. All rights reserved.