首页 > 解决方案 > PL/SQL 过程遇到一些问题

问题描述

我有一些PL/SQL要分配的块,但我遇到了一些问题,两者都可以单独运行,但是当我一次运行整个代码时(我需要分配),我得到了一个错误。以下是我得到的代码和错误,对我所缺少的任何帮助将不胜感激。谢谢

DECLARE
Salesbyzip NUMBER(10,2):=0;
inputZip NUMBER(5):=00000;

FUNCTION Zip_Code_Sales(zipcode IN NUMBER)

RETURN NUMBER IS
total_Sales NUMBER(10,2):=0;

BEGIN
    SELECT SUM(GROSS_SALE_PRICE)
    INTO total_Sales
    FROM SALES_OVS
    INNER JOIN CUSTOMERS_OVS ON SALES_OVS.CUST_ID = 
CUSTOMERS_OVS.CUSTOMER_ID
    WHERE zipcode = CUSTOMERS_OVS.Address_zip;
    RETURN total_Sales;
END;

BEGIN
    inputZip:=21009;
    Salesbyzip:=Zip_Code_Sales(inputZip);
    dbms_output.put_line('The total sales for zip code ' || inputZip || 
 ' is $'|| Salesbyzip);
END;

/*4.*/

 DECLARE
zipMostSales NUMBER(5):=00000;

FUNCTION Zip_Code_Max_Sales
RETURN NUMBER IS
maxZip NUMBER(5):=00000;

BEGIN
WITH sales_customers AS
(SELECT ADDRESS_ZIP, COUNT(*) AS Salesbyzip
    FROM SALES_OVS
    INNER JOIN CUSTOMERS_OVS ON SALES_OVS.CUST_ID = 
CUSTOMERS_OVS.CUSTOMER_ID
    GROUP BY ADDRESS_ZIP
    ORDER BY Salesbyzip DESC, ADDRESS_ZIP)
SELECT ADDRESS_ZIP
INTO maxZip
FROM sales_customers
WHERE ROWNUM <= 1;
RETURN maxZip;
END;

BEGIN
zipMostSales:=Zip_Code_Max_Sales;
dbms_output.put_line('The Zipcode with the most sales is ' || 
zipMostSales);
END;

错误报告 - ORA-06550:第 27 行,第 2 列:PLS-00103:遇到符号“DECLARE” ORA-06550:第 35 行,第 7 列:PLS-00103:在预期以下情况之一时遇到符号“SALES_CUSTOMERS”:

06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。*行动:

我希望让所有块顺利通过,并显示请求的信息。

标签: sqloracleplsqloracle-sqldeveloper

解决方案


推荐阅读