我遇到了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配置或类似的东西有关,但是现在我无法访问它。我只是想为一个我们将在几周内开始的项目做好准备。然后我将有权访问管理数据库的人(我希望如此)。
有什么想法吗?
答案 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
COMMIT
目的
使用COMMIT语句结束当前事务并生成 永久所有在交易中执行的更改。交易是一个 Oracle数据库视为单个语句的SQL语句序列 单元。此语句还会擦除事务中的所有保存点 释放事务锁。
答案 1 :(得分:1)
是的,你只需要提交;你也可以检查自动提交选项;