将数据插入我的表中的列中

发布于 2024-12-05 04:16:49 字数 608 浏览 0 评论 0原文

我创建了一个 for 循环,循环直到达到 10 并在每次达到 6 或 8 时输出 INSERT 现在我想在每次达到 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)

I have created a for loop that loops until it hits 10 and outputs INSERT everytime it hits 6 or 8 Now I want to insert a null value in the results column every time it hits a 6 or 8. How might I do this?

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;
/

Table

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

 RESULTS                                            VARCHAR2(60)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无法回应 2024-12-12 04:16:49
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> 
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> 
陪你搞怪i 2024-12-12 04:16:49

就在 dbms_output.put_line(' INSERT'); 之后
写下你的插入语句。

然后决定是否要自动提交,或者最后手动提交。

right after dbms_output.put_line(' INSERT');
write your insert statement.

then decide if you want to commit automatically, or manually at the end.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文