如何使用 Sql Developer 查看刚刚在脚本中修改的 table

How to see the table just modified in a script with Sql Developer

我在 sql 开发者中有这个块:

begin
 delete from temp;
 insert into temp values (1);
 dbms_output.put_line('Done');
end;

如果我按 F5,脚本运行正常。 table 更新为值 1,"Script output" 选项卡显示 'Done'。

但是我想在执行块后自动可视化我刚刚在 "result" 选项卡中修改的 table。那可能吗?如何? 任何帮助表示赞赏。谢谢。

不需要任何匿名 PL/SQL 块。只是 运行 SQL 语句作为脚本,

delete from temp;
insert into temp values (1);
select * from temp;

将以上三个语句放入SQLDeveloper工作表中然后按F5到运行作为脚本,请参阅脚本输出选项卡中的输出。您最终必须 COMMIT 才能使 table 更改永久化。

您不能在 PL/SQL 中执行 select * from table,因为它是纯 SQL 语句。 PL/SQL 需要一个 INTO 子句。当你可以在纯 SQL.

中做同样的事情时,永远不要在 PL/SQL 中做

但是,如果您真的想在 BEGIN-END 块中执行此操作,请将 SELECT 语句放在 PL/SQL 块之外。不要合并 PL/SQL 和 SQL。

begin
 delete from temp;
 insert into temp values (1);
 dbms_output.put_line('Done');
end;
/
select * from table;

您可以使用 CURSOR:

declare 
a temp.id%type; --name column in your table
cursor c1 is
select id from temp;
begin
  delete from temp;
  insert into temp values (1);
  open c1;
  loop 
  fetch c1 into a;
  dbms_output.put_line (a);
  exit when c1%notfound;
  end loop;
  CLOSE C1;
end;

当 table 已填充并且您不使用删除时,以下内容也将起作用。

declare 
    a temp.id%type; --name column in your table
begin
    -- delete from temp;
    insert into temp values (1)
    returning id into a;
    dbms_output.put_line (a);
    dbms_output.put_line('Done');
end;