我有一张这样的表:
CST_ID CST_NAME CST_TYPE PYMENT_MODE TOTAL_PAYMENT
----------------------------------------------------
105 Jyothy Regular Full 15900
101 Alveena Regular half 15800
102 Nizam Regular Full 15500
100 Hari Regular Full 14500
103 Sharath Partime Full 17500
104 Jipsy Shifted Full 18000
我创建了一个存储过程,用于获取我从具有主键值字段(此处为cst_id
)的过程调用的行为
CREATE or replace PROCEDURE sp_slct (cst_id NUMBER) AS
tot_id NUMBER;
--ls_name varchar2,
--ls_type varchar2,
--ls_mode varchar2,
--ls_pymnt int;
BEGIN
select
cst_id, cst_name, cst_type, payment_mode, total_payment into
ls_name, ls_type, ls_mode, ls_pymnt from tbl_cst
where
tbl_cst.cst_id = sp_slct.cst_id;
END sp_slct;
但是我在编译中遇到错误
如何获得结果以选择具有我作为过程输入的ID的行?
答案 0 :(得分:0)
你至少错过了程序参数列表中的 IN 关键字,这里应该如何。 也许您应该在INTO子句中声明变量
CREATE or replace PROCEDURE sp_slct (cst_id IN NUMBER) AS
答案 1 :(得分:0)
如果你告诉我们你的错误消息会很好,这会提高帮助的可能性。到目前为止,您的程序除了启动查询之外什么都不做。
您有两种方法可以使用查询结果。你可以使用游标(如果你想搜索某些行)或者你可以使用"进入"如果你只需要一个值。 (正如你所做的那样)
如果您想获得与您的参数列表匹配的结果,您必须将您的参数放入where子句(就像您所做的那样)。
我能看到的唯一错误是订单:SELECT ... INTO ... FROM ...
当然,您必须声明变量(撤消您的评论)