为什么Oracle有一个表显示具有相同数据库的不同数据?

时间:2015-05-28 10:28:53

标签: database oracle

我遇到了Oracle问题。我有一个数据库或架构和两个应用程序来管理一些数据:管理员应用程序和客户端应用程序 我通过客户端应用程序访问数据,它显示行和字段。

我通过管理应用程序访问数据,可以看到完全相同的数据。

然后我从管理员应用程序中创建insert,我可以看到新行 现在,我访问客户端,它显示旧数据,我的意思是没有新行的数据库。 即使我'更新'管理员中的某个字段,我也不会在客户端应用中看到'更新'。

这是插入:

INSERT
INTO sae_scenario_type
  (
    id,
    name,
    description,
    locked
  )
  VALUES
  (
    SEQ_SAE_SCENARIO_TYPE.nextVAL,
    'Direct_SQL_Insertion_1',
    'Direct SQL Insertion from RfoAdmin 1',
    'N'
  )

我已经阅读了文档,但我找不到可以有两个版本的同一个表或类似的东西。 我习惯于PostgreSQL和MySQL,但不习惯Oracle。现在我必须绕过客户端应用程序将行直接插入数据库,我可以使用管理员应用程序,但我无法在客户端应用程序中看到它们。

我很确定这与Oracle配置或类似的东西有关,但是现在我无法访问它。我只是想为一个我们将在几周内开始的项目做好准备。然后我将有权访问管理数据库的人(我希望如此)。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

  

现在,我访问客户端并显示旧数据,我的意思是没有新行的数据库。即使我更新'管理员中的一个字段,我不会看到更新'使用客户端应用程序。

唯一可能导致此问题的是,如果您没有提交

您必须在 DML 更改后提交,以确保更改是永久性的。

INSERT
INTO sae_scenario_type
  (
    id,
    name,
    description,
    locked
  )
  VALUES
  (
    SEQ_SAE_SCENARIO_TYPE.nextVAL,
    'Direct_SQL_Insertion_1',
    'Direct SQL Insertion from RfoAdmin 1',
    'N'
  );

COMMIT;  --> you are missing this

来自documentation

  

COMMIT

     

目的

     

使用COMMIT语句结束当前事务并生成   永久所有在交易中执行的更改。交易是一个   Oracle数据库视为单个语句的SQL语句序列   单元。此语句还会擦除事务中的所有保存点   释放事务锁。

答案 1 :(得分:1)

是的,你只需要提交;你也可以检查自动提交选项;