相同的数据库 - 来自不同客户端的不同输出
Same database - different output from different clients
我有一个带有 Oracle DB 的 docker 容器,我尝试从具有相同凭据的不同客户端访问它,但它的行为很奇怪。
我已经在 IDEA 中与以下 JDBC URL 建立连接:jdbc:oracle:thin: @//localhost:1526/XEPDB1
我还通过另一个容器中的 Spring Data 框架使用它,url 是 jdbc:oracle :thin:@oracle:1521/XEPDB1(端口转发到外部世界为1526,容器名称为oracle)
最后,我尝试使用 sqlplus 从数据库主机 访问数据库:sqlplus LOGIN/PASSWORD@localhost:1521/XEPDB1
所有连接都成功,但简单的插入和选择相同 table 表明每个客户端只能看到自己的修改。怎么了?我如何在客户端之间共享相同的 table?
根据连接字符串,所有用户都连接到同一个数据库,所以这不是问题。
问题可能是每个修改数据(例如,插入新行)的用户都没有提交,因此该数据仅在他们当前的会话中可用。一旦他们提交了数据,所有其他会话也将可以使用这些数据。
我有一个带有 Oracle DB 的 docker 容器,我尝试从具有相同凭据的不同客户端访问它,但它的行为很奇怪。
我已经在 IDEA 中与以下 JDBC URL 建立连接:jdbc:oracle:thin: @//localhost:1526/XEPDB1
我还通过另一个容器中的 Spring Data 框架使用它,url 是 jdbc:oracle :thin:@oracle:1521/XEPDB1(端口转发到外部世界为1526,容器名称为oracle)
最后,我尝试使用 sqlplus 从数据库主机 访问数据库:sqlplus LOGIN/PASSWORD@localhost:1521/XEPDB1
所有连接都成功,但简单的插入和选择相同 table 表明每个客户端只能看到自己的修改。怎么了?我如何在客户端之间共享相同的 table?
根据连接字符串,所有用户都连接到同一个数据库,所以这不是问题。
问题可能是每个修改数据(例如,插入新行)的用户都没有提交,因此该数据仅在他们当前的会话中可用。一旦他们提交了数据,所有其他会话也将可以使用这些数据。