我有一个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程序。
由于
答案 0 :(得分:1)
简短回答您无法<{1}}运行spool
命令
解释
Java未连接到Java
它连接到Oracle数据库。
Oracle数据库可以运行Oracle SQL Developer
个查询。
SQL
命令不属于spool
。它是SQL
命令语言的命令。
解决方案
您运行Oracle SQL Developer
查询(SQL
,请注意它不允许对其进行评论),然后使用某些select * from Table
lib处理结果并写入文件。
或者您继续使用CSV
工具。