gpt4 book ai didi

oracle10g - SQL Plus-没有行选择错误;虽然数据已经插入没有任何错误

转载 作者:行者123 更新时间:2023-12-01 23:05:48 24 4
gpt4 key购买 nike

我是这个 的新手SQL Plus 和 Oracle 10g 所以,请不要介意这些愚蠢的问题。

看,我面临的问题是,每当我对表发起查询时;
SELECT * FROM emp;
输出结果是“ 没有选择行”。

我完全进退两难,因为表和它的架构被清楚地保留了下来,但是我输入的数据没有被显示出来。所有用户生成的表都会发生同样的情况。元组没有显示出来。这是与有关的问题吗? SQL Plus ???
请帮助并给我一个适当的指南。

最佳答案

在 Oracle 中,您发出的每条语句都是事务的一部分。在另一个 session 可以看到数据之前,这些事务需要提交(在这种情况下更改是永久的)或回滚(在这种情况下更改被恢复)。一些数据库要么不支持事务(即 MySQL 中的 MyISAM 表),要么不隐式启动事务(即 SQL Server)。 Oracle 方法通常要优越得多——当您无意中运行 delete 时缺少重要谓词的语句,在删除更多您期望的行时回滚操作的能力可以成为真正的职业保护者。

在 Oracle 中,当您运行了包含事务的任何语句并且您确信所做的更改是正确的时,您需要明确发出 commit使这些更改对其他 session 可见,即

SQL> insert into some_table( <<columns>> ) values( <<values>> );
SQL> insert into some_other_table( <<columns>> ) values ( <<more values>> );
SQL> commit;

如果您真的、真的、真的确定您更喜欢在其他工具中可能习惯的行为,您可以告诉 SQL*Plus 自动提交您的更改
SQL> set autocommit on;
SQL> <<do whatever>>

这通常是一个非常糟糕的主意。您不必明确发出 commit 的微小好处确保其他 session 不会看到处于不一致状态的数据的能力远远超过了这一点(即,如果您通过发出两个更新语句将资金从账户 A 转移到账户 B,您不希望有人看到中间结果两个账户都有钱,或者两个账户都没有),并且如果结果做的事情超出了您的预期,则可以回滚更改。

关于oracle10g - SQL Plus-没有行选择错误;虽然数据已经插入没有任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22768587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com