declare str varchar2(4000); i int; begin for i in 1 ..31 loop str:= str || 'col' || i || ' varchar2(2)'; if i < 31 then str := str || ','; end if; end loop; execute immediate 'create table t1 ('|| str ||')'; end; /
私は pl/sql の初心者です。この手順では、31 列の t1 テーブルを作成します。31 は月の日 (たとえば 5 月) です。このような条件を持つプロシージャを作成できません: if col(i) i in ('Sat','Sun') ... insert into t1 value ('r') たとえば、このプロシージャは 'r を挿入する必要があります' col5,col6,col12,col13 .. 5 月 5 日、6 日、12 日、13 日が日曜日または土曜日であるため、列に
BEGIN
FOR i IN 1..31 LOOP
IF( to_char(sysdate-1+i,'DAY') IN ('SAT', 'SUN') )
THEN
INSERT INTO t1 (col(i))
VALUES ('r');
END IF;
END LOOP;
END;
/
この手順を試してみましたが、間違いを修正しなければならないエラーがいくつかあります 事前に感謝します