sql - 需要帮助使用 plsql 创建过程
问题描述
我需要创建一个程序来计算客户拥有多少辆汽车以及客户在所有这些汽车上花了多少钱。我设法让 select 语句单独工作,但将它实施到过程中让我很难过。
CREATE OR REPLACE PROCEDURE getcars (
v_customername IN saleinv.custname%TYPE
, v_totalcars OUT NUMBER
, v_moneyspent OUT NUMBER
) AS
BEGIN
SELECT
sale.custname
, COUNT(sale.carserial)
, round(SUM(sale.carsaleprice + serv.partscost + serv.laborcost), 2)
INTO v_customername, v_totalcars, v_moneyspent
FROM
saleinv sale
FULL OUTER JOIN servinv serv ON sale.custname = serv.custname
WHERE sale.custname = v_customername
GROUP BY
sale.custname;
END;
/
以下是我得到的错误:
错误 (6,5): PL/SQL: SQL 语句被忽略
错误(10,10):PLS-00403:表达式“V_CUSTOMERNAME”不能用作 SELECT/FETCH 语句的 INTO 目标
错误(10,52):PL/SQL:ORA-00904::标识符无效
解决方案
只是不要进入v_customername
. 它是一个IN
参数。并且sale.custname
不能由于无论如何WHERE
都要求的条款而与输入的值不同。sale.custname = v_customername
...
SELECT count(sale.carserial),
round(sum(sale.carsaleprice + serv.partscost + serv.laborcost), 2)
INTO v_totalcars,
v_moneyspent
FROM ...
...
推荐阅读
- javascript - 如何停止订阅商店更新?
- java - 使用 Spring Boot、Apache 和 Tomcat 在客户端/服务器系统中配置 CORS
- python - 为什么“查找”会产生字符串类型?
- python - 这 3 个 pytest 夹具的功能差异是什么?
- scala - 在“if-else 结构”之外找不到“if-else 结构”中定义的值
- javascript - JS 中有没有像 Python 中的 int.from_bytes() 这样的函数?
- django - 如果值为 null,则自定义 Django Rest Framework 序列化程序字段不运行`to_representation()`
- healpy - 使用 synalm 生成的字段的 Cls 与使用 synfast 生成的字段的输入 Cls 和 Cls 不一致
- python - 如何从文档中获取一个值并为其添加另一个值?
- python - 如何在 wxPython 中加载多个图像?