1、上一篇出的是Oracle数据库创建存储过程不带参数,直接执行,这种满足日常查询,这篇是带日期的调用

那么如果有一些常用查询或者计算需要传参数的,则需带参和传参 ,我先用日期参数做为示例

CREATE OR REPLACE PROCEDURE PROC_TEMP1(S_DATE IN VARCHAR2,E_DATE IN VARCHAR2) AS

BEGIN
EXECUTE IMMEDIATE \’CREATE TABLE TEMP1 NOLOGGING  AS
SELECT T.CREATE_STAFF,T.CREATE_ORG_ID,COUNT(1) ORDER_CNT
FROM TABLE_NAME T
WHERE T.CREATE_ORG_ID<>\’\’0\’\’
AND T.CREATE_STAFF<>\’\’0\’\’
AND T.SYS_SOURCE=\’\’0\’\’
AND T.CREATE_DATE >= TO_DATE(\’\’\’||S_DATE||\’\’\’,\’\’YYYY-MM-DD\’\’)
AND T.CREATE_DATE <=TO_DATE(\’\’\’||E_DATE||\’\’\’,\’\’YYYY-MM-DD\’\’)
GROUP BY T.CREATE_STAFF,T.CREATE_ORG_ID\’;
END;

绿色字体中就是存储过程创建的关键字;

红色字体就是入参,和参数的使用,传日期参数的时候,传VARCHAR2字符类型,然后使用TO_DATE转化为日期类型,就可以查出数据,非常好用。

2、执行存储过程,代入日期

BEGIN PROC_TEMP1(\’2021-07-01\’,\’2021-07-02\’); END;

这就可以了

创建和调用都有

 

版权声明:本文为min525原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/min525/p/15075492.html