首页 > 解决方案 > 如何重置 oracle JDBC?

问题描述

一个月前我开始学习Java。今天我正在学习一些使用 JSP 和 Servlet 创建网站所必需的 SQL 短语。

我使用了 SQL Developer 和 JDBC。在进行了一些插入/删除/更新操作后,我不小心点击了“提交”而不是“回滚”。所以我在某些表中的一些数据丢失了,我也是......

我想我必须删除并重新安装 JDBC 才能拥有 Oracle 提供的所有基本数据。但是,如果有任何更简单的方法,我想在此之前在这里寻求一些帮助。

任何人都可以帮助我吗?先感谢您。我不确定它是否会有所帮助,但这是我使用的 SQL:


INSERT INTO DEPARTMENTS VALUES(280, 'DataAnalytics', null, 1700);

INSERT INTO DEPARTMENTS (DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID,
LOCATION_ID) VALUES(280, 'DataAnalytics', null, 1700); 

UPDATE emps SET SALARY=30000WHEREEMPLOYEE_ID=101; 

UPDATE EMPS SET (JOB_ID, SALARY, MANAGER_ID)= (SELECT JOB_ID, SALARY,
MANAGER_ID FROM EMPS WHERE EMPLOYEE_ID=108) WHERE EMPLOYEE_ID=109; 

DELETE FROM EMPS WHERE EMPLOYEE_ID=108; DELETE FROM EMPLOYEES WHERE
EMPLOYEE_ID=103;

标签: sqloraclejakarta-ee

解决方案


我想你可能JDBCSQL. JDBC是 Java Database Connectivity 的缩写,它是用于从 Java 连接到关系数据库的 Java 标准(请参阅 Oracle 关于 JDBC 的文档:https ://docs.oracle.com/en/database/oracle/oracle-database/18/ jjdbc/introducing-JDBC.html#GUID-864DB502-5E50-4044-8132-33D6AAF8927A)。根据Oracle Database您运行的JDBC版本、驱动程序版本和使用的客户端,您可能会发现缺少某些功能,但该功能可能与您运行的 SQL 完全分离。

当您使用SQL Developer连接时,您可能正在使用JDBC连接,但很可能您使用的是基本连接类型或 TNS 连接类型。那些不依赖于 JDBC。您运行的 SQLSQL Developer修改了数据,因为这就是 SQL 的用途。SQL 是结构化查询语言的缩写,广泛用于管理关系数据库中的数据。

通过使用SQL Developer,您应该可以访问 Oracle 必须提供的所有标准功能。您可能缺少某些功能,但如果您或您的组织没有与 Oracle 签订许可协议并且没有配置这些功能,这是完全正常的。重新安装JDBC不会改变这一点。

你想达到什么目的?如果你想恢复你的数据,JDBC与此无关。您将必须: 1.Flashback数据库或表(取决于您正在运行的 Oracle 版本),它将数据库(或相关对象)恢复到执行之前的特定时间点SQL 命令。2. 使用OEMRMAN将数据库恢复到执行这些 SQL 命令之前的时间,或 3. 删除相关数据并重新创建(或重新导入)您的数据。

由于您committed是操作该数据的事务,因此这些可能是您恢复数据库原样的唯一选择。如果您知道属于这些表的原始值,我想您还可以编写更多 SQL 将值更改回原始值。这可能会导致您想要的结果,但请注意,此方法(和选项 #3)不会被视为还原,并且您在该点之前所做的所有更改仍将是事务历史记录的一部分。如果那没关系,那可能是您追求的最简单的途径。


推荐阅读