过程语法问题

时间:2014-08-18 11:24:31

标签: sql oracle stored-procedures plsql

对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

1 个答案:

答案 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;

分享并享受。