PL/SQL 开发人员看不到插入语句的结果
PL/SQL Developer Can't See Results Of Insert Statement
正如标题所说 - 当我执行“INSERT”语句时,除非我 re-open PL/SQL 开发人员,否则我看不到结果。
为了让事情更清楚一点:
在我对空 table "worker_temp" -
执行此语句后
insert into worker_temp
select * from worker_b
我看到已经插入了100条记录:
但是当我尝试使用此查询查看结果时:
select * from worker_temp;
我仍然看到空的 table:
但是只有在我退出 PL/SQL Developer 和 re-open 它之后,我才能看到我之前插入的记录:
有没有办法在不关闭 re-opening PL/SQL 开发人员的情况下查看更改?
到目前为止我尝试过的:
我尝试通过右键单击 table 来刷新它:
而且我还尝试刷新整个 tables 文件夹:
我也试过提交 -
commit;
但我不确定那是什么。
与工具无关的方式:
begin
insert into worker_temp
select * from worker_b;
commit;
end;
从所有屏幕截图来看,您可能会在正在使用的 'each' 选项卡中获得单独的数据库会话 - 这是一件好事。您必须在执行插入的同一会话上发出提交。另一种理解方式:
begin
insert into worker_temp select * from worker_b;
DBMS_OUTPUT.PUT_LINE('Rows inserted but not committed ' || SQL%ROWCOUNT);
-- 'undo' the insert by rolling back the insert instead of commit.
rollback;
end;
PL/SQL Developer 中的默认设置是多会话:
这意味着您打开的每个编辑器 window 都会在单独的会话中登录到数据库中。一个会话在提交之前看不到另一个会话的更改。这有点像在网络驱动器上保存共享的 Excel 电子表格。在您完成更改之前,没有人可以看到您的更改,您会欣赏这是 multi-user 数据库中的一项重要功能。
在 PL/SQL Developer 中,Multi session 默认设置意味着您可以在一个 SQL [=40] 中启动 long-running 查询=],然后在另一个地方继续做其他事情而不会被阻止而不必等待它。使用此设置,您需要在任何其他编辑器 window 可以看到它们之前提交您的更改。工具栏中有Commit和Rollback图标,也可以输入commit;
然后执行。
但是,我总是将我的设置为 双会话,这意味着所有 windows 都是同一会话的一部分,即使这意味着我有时不得不等待一些事情.我发现这大大简化了事情,而且我可以在多个 windows 之间进行更改而无需提交,这在使用全局临时表或 alter session
命令时很有用。
在 this setup guide 阅读更多内容。
正如标题所说 - 当我执行“INSERT”语句时,除非我 re-open PL/SQL 开发人员,否则我看不到结果。
为了让事情更清楚一点: 在我对空 table "worker_temp" -
执行此语句后insert into worker_temp
select * from worker_b
我看到已经插入了100条记录:
但是当我尝试使用此查询查看结果时:
select * from worker_temp;
我仍然看到空的 table:
但是只有在我退出 PL/SQL Developer 和 re-open 它之后,我才能看到我之前插入的记录:
有没有办法在不关闭 re-opening PL/SQL 开发人员的情况下查看更改?
到目前为止我尝试过的:
我尝试通过右键单击 table 来刷新它:
而且我还尝试刷新整个 tables 文件夹:
我也试过提交 -
commit;
但我不确定那是什么。
与工具无关的方式:
begin
insert into worker_temp
select * from worker_b;
commit;
end;
从所有屏幕截图来看,您可能会在正在使用的 'each' 选项卡中获得单独的数据库会话 - 这是一件好事。您必须在执行插入的同一会话上发出提交。另一种理解方式:
begin
insert into worker_temp select * from worker_b;
DBMS_OUTPUT.PUT_LINE('Rows inserted but not committed ' || SQL%ROWCOUNT);
-- 'undo' the insert by rolling back the insert instead of commit.
rollback;
end;
PL/SQL Developer 中的默认设置是多会话:
这意味着您打开的每个编辑器 window 都会在单独的会话中登录到数据库中。一个会话在提交之前看不到另一个会话的更改。这有点像在网络驱动器上保存共享的 Excel 电子表格。在您完成更改之前,没有人可以看到您的更改,您会欣赏这是 multi-user 数据库中的一项重要功能。
在 PL/SQL Developer 中,Multi session 默认设置意味着您可以在一个 SQL [=40] 中启动 long-running 查询=],然后在另一个地方继续做其他事情而不会被阻止而不必等待它。使用此设置,您需要在任何其他编辑器 window 可以看到它们之前提交您的更改。工具栏中有Commit和Rollback图标,也可以输入commit;
然后执行。
但是,我总是将我的设置为 双会话,这意味着所有 windows 都是同一会话的一部分,即使这意味着我有时不得不等待一些事情.我发现这大大简化了事情,而且我可以在多个 windows 之间进行更改而无需提交,这在使用全局临时表或 alter session
命令时很有用。
在 this setup guide 阅读更多内容。