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;