一个存储过程中,想定义一些参数供 SQL语句使用,要求直接在存储过程中赋值。
还需要定义一个变量,用以控制循环执行的次数。
CREATE OR REPLACE PROCEDURE PROC_MT_SCRB_LJ_SZ AS
DECLARE @I INT, --用以控制循环次数的变量
V_DATE_DATE VARCHAR2(6) , -- 其它参数
V_DATE_YEAR VARCHAR2(4) ,
V_DATE_MONTH VARCHAR2(2) V_DATE_DATE = TO_CHAR(SYSDATE, 'YYYYMM'), -- 赋值后不变
V_DATE_YEAR = TO_CHAR(SYSDATE, 'YYYY'),
V_DATE_MONTH = TO_CHAR(SYSDATE, 'MM')
WHILE @I <30 -- 循环30次
BEGIN
INSERT INTO ……
初学 水平很浅,见笑了
还需要定义一个变量,用以控制循环执行的次数。
CREATE OR REPLACE PROCEDURE PROC_MT_SCRB_LJ_SZ AS
DECLARE @I INT, --用以控制循环次数的变量
V_DATE_DATE VARCHAR2(6) , -- 其它参数
V_DATE_YEAR VARCHAR2(4) ,
V_DATE_MONTH VARCHAR2(2) V_DATE_DATE = TO_CHAR(SYSDATE, 'YYYYMM'), -- 赋值后不变
V_DATE_YEAR = TO_CHAR(SYSDATE, 'YYYY'),
V_DATE_MONTH = TO_CHAR(SYSDATE, 'MM')
WHILE @I <30 -- 循环30次
BEGIN
INSERT INTO ……
初学 水平很浅,见笑了
is
V_DATE_DATE VARCHAR2(6) ; -- 其它参数
V_DATE_YEAR VARCHAR2(4) ;
V_DATE_MONTH VARCHAR2(2); V_DATE_DATE = TO_CHAR(SYSDATE, 'YYYYMM'); -- 赋值后不变
V_DATE_YEAR = TO_CHAR(SYSDATE, 'YYYY');
V_DATE_MONTH = TO_CHAR(SYSDATE, 'MM');
begin
for i in 1..30 loop -- 循环30次
INSERT INTO ……
...
end;
is
V_DATE_DATE VARCHAR2(6) := TO_CHAR(SYSDATE, 'YYYYMM'); -- 赋值后不变
V_DATE_YEAR VARCHAR2(4) := TO_CHAR(SYSDATE, 'YYYY');
V_DATE_MONTH VARCHAR2(2) := TO_CHAR(SYSDATE, 'MM');
begin
for i in 1..30 loop -- 循环30次
INSERT INTO ……;
END LOOP;
end;或者直接定义常量。
is
V_DATE_DATE CONSTANT VARCHAR2(6) := TO_CHAR(SYSDATE, 'YYYYMM'); -- 赋值后不变
V_DATE_YEAR CONSTANT VARCHAR2(4) := TO_CHAR(SYSDATE, 'YYYY');
V_DATE_MONTH CONSTANT VARCHAR2(2) := TO_CHAR(SYSDATE, 'MM');
begin
for i in 1..30 loop -- 循环30次
INSERT INTO ……;
END LOOP;
...
end;
I INT; --用以控制循环次数的变量
V_DATE_DATE VARCHAR2(6); -- 其它参数
V_DATE_YEAR VARCHAR2(4);
V_DATE_MONTH VARCHAR2(2);
BEGIN
i=1;
V_DATE_DATE=TO_CHAR(SYSDATE, 'YYYYMM'); -- 赋值后不变
V_DATE_YEAR=TO_CHAR(SYSDATE, 'YYYY');
V_DATE_MONTH=TO_CHAR(SYSDATE, 'MM');
WHILE i <=30 loop-- 循环30次 INSERT INTO ……;
i=i+1;
end loop;
end;