【问题标题】:Simulate Oracle SPOOL in Java在 Java 中模拟 Oracle SPOOL
【发布时间】:2011-09-06 11:31:54
【问题描述】:

嗨,

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

谢谢

【问题讨论】:

  • 肯定只是写入标准输出并将其重定向到文件就足够了吗?

标签: java oracle jdbc sqlplus spool


【解决方案1】:

首先,这是固定查询还是任意查询?如果它是固定的,你将有一个更轻松的时间。任意查询必须通过 dbms_sql 运行,因此您可以返回列属性。太乱了。

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

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

  1. 为查询打开游标
  2. 如果有数据,打印列标题(包括'-----'行)
  3. 遍历光标,以正确的格式打印记录的每个值
  4. 关闭光标

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

【讨论】:

  • 为什么需要 dbms_sql?!?您可以只解析语句并检查元数据!
  • 实际上不知道该怎么做。有链接吗?
  • 除非我记错了,@ammoQ 指的是ResultSet.getMetaData() 返回的ResultSetMetaData。一旦你有了它,你就不需要依赖dbms_sql,对吗?
猜你喜欢
  • 2018-09-02
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
相关资源
最近更新 更多