对PL / SQL很陌生,所以请提前道歉。我担心我的程序语法 - 使用Oracle SQL Devloper
以下是表格:
SALE_HEAD TABLE - http://imgur.com/YufJyto
CUSTOMER TABLE - http://imgur.com/ULXzpLc
create or replace procedure test2
(
x in Integer
) as
begin
SELECT into
((COUNT(sale_num))/4) FROM sale_head
INNER JOIN customer using(customer_id)
where status = 'S'
and SALE_DATE >= (add_months(SYSDATE, -12)) and customer_id= x;
end;
/
execute test2(81);
语法如下:
Error(6,1): PL/SQL: SQL Statement ignored
Error(6,8): PL/SQL: ORA-00936: missing expression
答案 0 :(得分:0)
SELECT语句的语法不正确。 INTO子句用于指示接收SELECT结果的变量。请尝试以下方法:
create or replace procedure test2(x in Integer) as
nValue NUMBER;
begin
SELECT ((COUNT(sale_num))/4)
INTO nValue
FROM sale_head
INNER JOIN customer using(customer_id)
where status = 'S'
and SALE_DATE >= (add_months(SYSDATE, -12))
and customer_id = x;
end;
分享并享受。