Вставить данные в столбец в моей таблице - PullRequest
0 голосов
/ 16 сентября 2011

Я создал цикл for, который повторяет цикл до 10 и выводит INSERT каждый раз, когда он достигает 6 или 8. Теперь я хочу вставить нулевое значение в столбец результатов каждый раз, когда он достигает 6 или 8. Как я могу это сделать? ?

declare var1 number := 0;
begin
loop exit when var1 > 10; 
if var1 IN (6,8) THEN dbms_output.put_line(' INSERT'); ELSE
dbms_output.put_line(var1);
end if;
var1 := var1 + 1;
end loop;
dbms_output.put_line('Done');
end;
/

Таблица

 SQL> describe messages
 Name                                      Null?    Type
  ----------------------------------------- -------- ----------------------------

 RESULTS                                            VARCHAR2(60)

Ответы [ 2 ]

0 голосов
/ 16 сентября 2011
SQL> describe messages
 Name                                     Null?    Type
 ---------------------------------------- -------- ----------------------------
 RESULTS                                           VARCHAR2(60)

SQL> SELECT COUNT(*) FROM messages;

  COUNT(*)
----------
         0

SQL> SELECT * FROM messages;

no rows selected

SQL> get a.sql
  1  DECLARE
  2    var1 NUMBER := 0;
  3  BEGIN
  4    LOOP
  5      EXIT WHEN var1 > 10;
  6      IF var1 IN (6,8) THEN
  7        DBMS_OUTPUT.PUT_LINE(' INSERT');
  8        INSERT INTO messages VALUES (NULL);
  9      ELSE
 10        DBMS_OUTPUT.PUT_LINE(var1);
 11      END IF;
 12      var1 := var1 + 1;
 13    END LOOP;
 14    DBMS_OUTPUT.PUT_LINE('Done.');
 15* END;
 16  
 17  /
0
1
2
3
4
5
INSERT
7
INSERT
9
10
Done.

PL/SQL procedure successfully completed.

SQL> SELECT COUNT(*) FROM messages;

  COUNT(*)
----------
         2

SQL> SELECT * FROM messages;

RESULTS
------------------------------------------------------------



SQL> 
0 голосов
/ 16 сентября 2011

сразу после dbms_output.put_line(' INSERT'); напишите ваше заявление вставки.

затем решите, хотите ли вы совершать коммит автоматически или вручную в конце.

...