Java 当使用JDBC run Drop Tablespace命令时,操作系统中的数据文件不会被删除

Java 当使用JDBC run Drop Tablespace命令时,操作系统中的数据文件不会被删除,java,oracle,jdbc,oracle11g,Java,Oracle,Jdbc,Oracle11g,我使用ojdbc6.jar库编写了一个Java应用程序,通过以下命令在Oracle中删除表空间: drop tablespace test including contents and datafiles cascade constraints; 但当命令完成时(成功无误),数据文件仍然存在于我的操作系统中。 当我直接在sqlplus或sqldeveloper上运行此命令时,数据文件将在眨眼之间消失 这是我创建表空间的SQL脚本(我不认为这是原因) 我在Windows 8上使用Oracle 1

我使用ojdbc6.jar库编写了一个Java应用程序,通过以下命令在Oracle中删除表空间:

drop tablespace test including contents and datafiles cascade constraints;
但当命令完成时(成功无误),数据文件仍然存在于我的操作系统中。
当我直接在sqlplus或sqldeveloper上运行此命令时,数据文件将在眨眼之间消失

这是我创建表空间的SQL脚本(我不认为这是原因)

我在Windows 8上使用Oracle 11G2安装。
你们以前遇到过这种症状吗?如何解决 编写java代码以运行此命令(以运行脚本文件和运行命令两种方式)


这种行为在Windows平台(实际上是Windows平台的一个限制)中是可以预期的,在所有打开文件的进程释放文件之前,无法删除该文件

问题
ALTER数据库数据文件“”脱机删除


Bug 2338968:DROP TABLESPACE并不总是自动删除数据文件。

在Windows平台(实际上是Windows平台的一个限制)中,在所有打开文件的进程释放文件之前,无法删除该文件

问题
ALTER数据库数据文件“”脱机删除


Bug 2338968:DROP TABLESPACE并不总是自动删除数据文件。

感谢您提供的信息,我以前不知道:)我也感谢您。我有这个问题,没有找到解决办法。谢谢谢谢你提供的信息,我以前不知道:)我也谢谢你。我有这个问题,没有找到解决办法。谢谢
    CREATE TABLESPACE UC4_112_DATA
DATAFILE 'D:\app\oradata\testimport\tablespace_bond_75.dbf'
SIZE 128M
AUTOEXTEND ON NEXT 100M MAXSIZE 5000M
DEFAULT STORAGE (INITIAL 512K NEXT 2048K MAXEXTENTS UNLIMITED);
SQLRunner sqlRunner = null;
    try {
        logger.info("Executing SQL query/script ...");
        sqlRunner = new SQLRunner(connection);
        sqlRunner.setStopOnError(true);
        if (scriptFile != null) {
            sqlRunner.setScriptDelimiter(scriptSeperator);

            File tempFile;
            URI uri = new URI(scriptFile);
            if (uri.getScheme() == null){
                tempFile = new File(scriptFile);
            }else{
                String fileInURI = URLEncoder.encode(uri.toURL().getFile(), "UTF-8");
                String filename = URLDecoder.decode(fileInURI, "UTF8");
                filename = normalizePath(filename, charMap, false, scriptFile.length() - filename.length());
                filename = filename.replace("BACK_TICK", "`");
                tempFile = new File(filename);
            }
            sqlRunner.executeScript(tempFile);

        } else {
            String query = parser.getOptionValue(queryArg);
            query = decryptIfEncrypted(query);
            String outputSeperator = parser.getOptionValue(outputSeperatorArg);
            if (outputSeperator == null) {
                outputSeperator = "#!#";
            }
            SQLResult result = sqlRunner.executeSQL(query);
            printResult(result, outputSeperator);
        }

        sqlRunner.commit();
        logger.info("Executed SQL query/script successfully.");
    } catch (SQLException e) {
        sqlRunner.rollback();
        logger.error(e);
        if (e.getMessage().contains(" exist"))
            returnCode = ErrorCodes.SQL_EXISTS_ERROR;
        else
            returnCode = ErrorCodes.EXCEPTION;

    } catch (URISyntaxException e) {
        logger.error(String.format("Invalid URI file \"%s\" !!!", scriptFile), e);
        returnCode = ErrorCodes.PARAMSMISMATCH;
    } finally {
        if (sqlRunner != null)
            sqlRunner.close();
    }