【发布时间】:2019-01-24 23:15:12
【问题描述】:
我正在 Windows 服务器中编写一个 BAT 文件,它将连接到 oracle,选择输出将被假脱机到一个文件,输出文件将被放置到网络驱动器。
我已通过以下步骤完成此操作:
1)创建一个bat文件连接oracle并执行该文件。
sqlplus UserName/Password@Hostname:1555/Service_Name @SQL_Script_to_execute
copy generated_File_with_path network_location
2) 将选择查询放在 SQL 脚本中。
spool "path_to_the_saved_file";
set define off;
set heading off;
set linesize 30000;
select column_A||ColumnB|| columnC from table;
spool off;
exit;
我可以在输出文件中提取查询结果,但格式非常不正确。
在最后一列末尾和几行空白行之后,我得到了很多额外的空间。
如何删除最后一列之后和空白行之间的这些多余空格?
PS:到目前为止,我已经完成了以下步骤
- 删除了 SQL 脚本中的 linesize,以避免在最后一列之后出现多余的空格,但这会使输出文件变得更糟。 表格行不在一行中。
- 添加了 set pagesize 50000,确实解决了这个问题,但仍然有几个空白行出现在 文件,因为表中的总行数约为 70000。
- 我已经在使用查询作为选择 colA||栏B || colC 从表中避免空间问题。
【问题讨论】:
-
这些列的数据类型是什么?是否是 CHAR(不是 VARCHAR2,而是 CHAR)?如果是这样,它的值将用空格填充到该列的总长度。会是这样吗?
-
您是否尝试在脚本中包含
set pagesize 0以删除空格?
标签: sql batch-file cmd oracle11g sqlplus