Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java模拟oraclespool_Java_Oracle_Jdbc_Sqlplus_Spool - Fatal编程技术网

用Java模拟oraclespool

用Java模拟oraclespool,java,oracle,jdbc,sqlplus,spool,Java,Oracle,Jdbc,Sqlplus,Spool,嗨 我正在将shell脚本转换为Java程序。shell脚本运行sql语句并将文件假脱机为外部文本文件。我想用Java来模拟这个。(输出文件的格式必须与在SQL+中运行comman时生成的格式完全相同。谁能给我一些指导,比如格式化间距。。。档案 谢谢首先,这是固定查询还是任意查询?如果修好了,你的日子会好过些。任意查询必须通过dbms_sql运行,因此您可以返回列属性。那太乱了 其次,请记住,SQL*Plus格式是由客户端中的设置控制的。行长、页面大小、列宽、标题等都可以在不同的执行中更改 也就

我正在将shell脚本转换为Java程序。shell脚本运行sql语句并将文件假脱机为外部文本文件。我想用Java来模拟这个。(输出文件的格式必须与在SQL+中运行comman时生成的格式完全相同。谁能给我一些指导,比如格式化间距。。。档案


谢谢

首先,这是固定查询还是任意查询?如果修好了,你的日子会好过些。任意查询必须通过dbms_sql运行,因此您可以返回列属性。那太乱了

其次,请记住,SQL*Plus格式是由客户端中的设置控制的。行长、页面大小、列宽、标题等都可以在不同的执行中更改

也就是说,假设这是一个固定的查询,那么我会:

  • 为查询打开一个游标
  • 如果有数据,则打印列标题(包括“-----”行)
  • 循环遍历光标,以正确的格式打印记录的每个值
  • 关闭光标

  • 您应该能够通过检查SQL*Plus的输出并将其复制来格式化输出。

    当然,只需写入标准输出并将其重定向到文件就足够了?为什么需要dbms_SQL?!?您只需解析一条语句并检查元数据即可!实际上,我不知道该怎么做。有链接吗?除非我弄错了,@ammoQ引用的是
    ResultSet.getMetaData()
    返回的
    ResultSetMetaData
    。一旦你有了它,你就不需要依赖于
    dbms\u sql
    ,对吗?