Oracle SQL。程序中的数据范围

Oracle SQL。程序中的数据范围,sql,oracle,plsql,Sql,Oracle,Plsql,我选择了两个日期之间的出口销售信息(日期、编号) SELECT SALE_DATE, SALE_NUM from SALES where sale_date between '&fromdate' AND '&todate'; 但我想通过程序来实现这一点。怎么做?我所尝试的: create or replace procedure SALE_DATES(var_saledate in SALES.SALE_DATE%TYPE) AS BEGIN DECLARE Cursor c

我选择了两个日期之间的出口销售信息(日期、编号)

SELECT SALE_DATE, SALE_NUM
from SALES
where sale_date between '&fromdate' AND '&todate';
但我想通过程序来实现这一点。怎么做?我所尝试的:

create or replace procedure SALE_DATES(var_saledate in SALES.SALE_DATE%TYPE)
AS
BEGIN
DECLARE Cursor c4 IS
SELECT SALE_DATE, SALE_NUM
from SALES
where sale_date = var_saledate AND var_saledate between '&fromdate' AND '&todate';
BEGIN FOR item IN c4

  LOOP
    DBMS_OUTPUT.PUT_LINE
     ('Date= ' || item.sale_date || ', Sale number: ' || item.sale_num);
  END LOOP;
  END;
  END;
程序的开始:

begin SALE_DATES(.....);
end;

大括号中应该使用什么参数?

两个参数,以便您可以传递日期范围。。。我已经使用了更多的标准命名约定,并且把它说得更清楚一些

CREATE OR REPLACE PROCEDURE get_sales
 (P_from_date  IN  DATE
 ,P_to_date    IN  DATE
 )
AS

  CURSOR C_get_sales
  IS
    SELECT
     s.sale_date
    ,s.sale_num
    FROM
     sales     s
    WHERE s.sale_date BETWEEN P_from_date AND P_to_date
  ;

BEGIN

  FOR R_this_sale IN C_get_sales LOOP

    DBMS_OUTPUT.PUT_LINE
     ('Date= ' || R_this_sale.sale_date || ', Sale number: ' || R_this_sale.sale_num)
    ;
  END LOOP;

END;

两个参数,以便您可以在日期范围内传递。。。我已经使用了更多的标准命名约定,并且把它说得更清楚一些

CREATE OR REPLACE PROCEDURE get_sales
 (P_from_date  IN  DATE
 ,P_to_date    IN  DATE
 )
AS

  CURSOR C_get_sales
  IS
    SELECT
     s.sale_date
    ,s.sale_num
    FROM
     sales     s
    WHERE s.sale_date BETWEEN P_from_date AND P_to_date
  ;

BEGIN

  FOR R_this_sale IN C_get_sales LOOP

    DBMS_OUTPUT.PUT_LINE
     ('Date= ' || R_this_sale.sale_date || ', Sale number: ' || R_this_sale.sale_num)
    ;
  END LOOP;

END;

我认为您需要将两个参数传递到您的过程中:P_from_date和P_to_date。然后您可以使用P_from_date和P_to_date之间的WHERE sale_date我认为您需要将两个参数传递到您的过程中:P_from_date和P_to_date。那么你可以使用P_from_date和P_to_date之间的销售日期,你怎么称呼这个过程?我试过开始销售日期('from'u Date','to'u Date');结束;但是他们在DBMS输出编辑中什么都没有:对不起,我忘了打开serveroutput;你怎么称呼这个过程?我试过开始销售日期('from'u Date','to'u Date');结束;但是他们在DBMS输出编辑中什么都没有:对不起,我忘了打开serveroutput;