Oracle PL/SQL-DBMS_输出是包装文本

Oracle PL/SQL-DBMS_输出是包装文本,oracle,plsql,oracle-sqldeveloper,dbms-output,Oracle,Plsql,Oracle Sqldeveloper,Dbms Output,自从我们公司升级了Oracle SQL Developer版本以来,我一直注意到使用DBMS_OUTPUT.PUT_行将数据输出到DBMS_输出时出现的问题 我们使用此函数并将其与Excel中的“文本到列”功能相结合,以快速生成报告。然而,我发现自从更新以来,文本在DBMS_输出中(似乎)随机地强制换行。这对生成报告是有害的,因为它依赖于与电子表格模板的完美对齐 我不确定是什么导致了这条线断裂,但为了证明我在下面提供了一个混乱但希望有用的例子 例如,如果我运行以下语句22次: begin DBM

自从我们公司升级了Oracle SQL Developer版本以来,我一直注意到使用DBMS_OUTPUT.PUT_行将数据输出到DBMS_输出时出现的问题

我们使用此函数并将其与Excel中的“文本到列”功能相结合,以快速生成报告。然而,我发现自从更新以来,文本在DBMS_输出中(似乎)随机地强制换行。这对生成报告是有害的,因为它依赖于与电子表格模板的完美对齐

我不确定是什么导致了这条线断裂,但为了证明我在下面提供了一个混乱但希望有用的例子

例如,如果我运行以下语句22次:

begin
DBMS_OUTPUT.PUT_LINE('111111111111111111111111111111111111111111111111111111111111111111111111111');
end;
我们预计输出将连续返回75个1,22次。然而,情况并非如此。第11行和第12行返回以下内容:

11
1111111111111111111111111111111111111111111111111111111111111111111111111
(上面显示第11行和第12行73行上的2 1's)

第22行和第23行

111
111111111111111111111111111111111111111111111111111111111111111111111111
(上面第11行显示3 1,第12行显示72)

如你所见,这条线在第11行和第22行断开了

应该注意的是,所有其他行的格式都正确,只有第11行和第22行的文本是换行/换行的

当然,这不是一个真实的例子,但我认为这是最简单的解释方法


有人知道为什么要换行以及我如何修复吗?

您使用的版本4.2.0.16是第二个早期采用者版本4.2EA2。此行为已在4.2发行版(4.2.0.17)中修复

我可以在4.2.0.16中复制,但不能在4.2.0.17中复制;虽然即使在EA2中,我也会在不同的地方看到额外的休息。您可以通过更改会话线宽来修改它们的显示位置。对于您看到的确切行为,您似乎已将线宽设置为762

设置了32767的最大值后,我直到第432行才发现问题,该行支持与线宽/字符串长度相关的内容(加上一行换行符-32767/76=431.144,因此在额外不需要的换行符之前,您将获得431条完整行和11条下一行);当然,对于你的真实场景来说,这可能还不够好


升级将是一种比试图绕过它更容易失败的方法。您可以从获取当前发布版本。

对我来说很好:哪个版本的SQL Developer?我似乎记得在过去看到过类似的事情,但在4.2.Hi上无法复制,它是4.2.0.16.260版。你不觉得通过控制台输出生成报告是一种打击自己的方式吗?老实说,这正是我从部门采用的方法。在更新之前,以这种方式输出的所有数据都非常完美。谢谢,在运行查询之前设置行大小非常有效。我想我可能在短期内解决这个问题,但我会努力让我的SQL开发人员长期更新