使用java以反斜杠输入SQL Query

时间:2017-07-24 17:29:01

标签: java sql oracle-sqldeveloper

我有一个java程序,它连接到Oracle SQL Developer中的数据库。 我需要数据库中的数据导出到.csv文件。我可以使用假脱机直接在SQL Developer中执行此操作,如图所示

spool D:\fileLocation\fileName.csv
select /*csv*/ * from Table;
spool off

我需要能够将它输入到SQL Developer FROM java程序中。我可以使用下面的代码输入从java到sql的查询

Statement SumLevel = connection.createStatement();
    try{
        SumLevel.executeQuery("SQL Query");
        System.out.println("Succesfuly Entered Data");

    }catch(SQLException e){
        System.out.println(e);
    }finally{
        if(CompareLevel != null){
            CompareLevel.close();
        }
    }

显然java中的\不仅仅是一个字符,所以如果我在java中尝试假脱机的第一行,它会尝试做\ f这是一个单独的函数。

使用\\打印出所需的代码但是当它输入到sql时它表示存在错误" java.sql.SQLSyntaxErrorException:ORA-00900:无效的SQL语句"。 我相信这是由于SQL读取显示\\而不是\

的代码
spool D:\\fileLocatoin\\fileName.csv
select /*csv*/ * from Table;
spool off

我如何能够将sql假脱机代码输入java程序。

由于

1 个答案:

答案 0 :(得分:1)

简短回答您无法<{1}}运行spool命令

解释

Java未连接到Java它连接到Oracle数据库。 Oracle数据库可以运行Oracle SQL Developer个查询。

SQL命令不属于spool。它是SQL命令语言的命令。

解决方案

您运行Oracle SQL Developer查询(SQL,请注意它不允许对其进行评论),然后使用某些select * from Table lib处理结果并写入文件。

或者您继续使用CSV工具。