其实就是取当年的月份,以201301-201304 的格式,循环插入t_test表中, t_test中有一个字段timeny
CREATE OR REPLACE PROCEDURE test_ForlnLoop is
w_timeny varchar(100);
cursor test_cursor is SELECT TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE, 'YYYY'), ROWNUM - 1),
'YYYYMM'
) TIMENY
FROM DUAL
CONNECT BY ROWNUM <= TO_NUMBER (TO_CHAR (SYSDATE, 'MM')) ORDER BY TIMENY DESC;
begin
for w_timeny in test_cursor loop
insert into t_test (timeny) VALUES (w_timeny); end loop;
commit;
end;执行的结果报错,报表达式类型错误,w_timeny
问下大家,应该怎么修改下,希望大家能帮下我
CREATE OR REPLACE PROCEDURE test_ForlnLoop is
w_timeny varchar(100);
cursor test_cursor is SELECT TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE, 'YYYY'), ROWNUM - 1),
'YYYYMM'
) TIMENY
FROM DUAL
CONNECT BY ROWNUM <= TO_NUMBER (TO_CHAR (SYSDATE, 'MM')) ORDER BY TIMENY DESC;
begin
for w_timeny in test_cursor loop
insert into t_test (timeny) VALUES (w_timeny); end loop;
commit;
end;执行的结果报错,报表达式类型错误,w_timeny
问下大家,应该怎么修改下,希望大家能帮下我
--W_TIMENY VARCHAR(100);
CURSOR TEST_CURSOR IS
SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), ROWNUM - 1), 'YYYYMM') TIMENY
FROM DUAL
CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(SYSDATE, 'MM'))
ORDER BY TIMENY DESC;
BEGIN
FOR W_TIMENY IN TEST_CURSOR LOOP
INSERT INTO T_TEST (TIMENY) VALUES (W_TIMENY.TIMENY);
END LOOP;
COMMIT;
END;
CREATE OR REPLACE PROCEDURE test_ForlnLoop is
cursor test_cursor is
SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), ROWNUM - 1), 'YYYYMM') TIMENY
FROM DUAL
CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(SYSDATE, 'MM'))
ORDER BY TIMENY DESC;
w_timeny test_cursor%rowtype;begin
for w_timeny in test_cursor loop
insert into t_test (timeny) VALUES (w_timeny);
end loop;
commit;
end;