使用ij时,Derby列名称会被切断

问题描述 投票:3回答:2

当我输入“Describe [someTable];”很长的列(超过20个字符)的列名被截断,并使用&符号。例如,我有两列似乎被命名为WowThisIsAVeryLongC&。

当我运行select *语句时,列名也会被截断,因为它们中的数据只有2或3个字符长。我尝试使用系统调用表并选择将数据导出为CSV,但那些不会给我任何标题信息。 MaximumDisplayWidth仅更改显示的数据的宽度。我找不到任何方法来找出这些列的正确名称。这是我继承的数据库,所以我有点卡住了。

任何和所有的帮助将不胜感激。

sql derby
2个回答
0
投票

尝试在IJ中使用help命令。这应该指向你MaximumDisplayWidth Command还有ij.maximumDisplayWidth property


0
投票

如果您使用的是Derby Release 10.10+,则可以使用databaseMetaData工具。

这里几乎与describe '*'命令相同的输出:

ij> maximumdisplaywidth 1000;
ij> call syscs_util.syscs_register_tool( 'databaseMetaData', true );
Statement executed.
ij> select t.table_schem, t.table_name, c.column_name, c.type_name, c.DECIMAL_DIGITS, c.NUM_PREC_RADIX, c.COLUMN_SIZE, c.COLUMN_DEF, c.CHAR_OCTET_LENGTH, c.IS_NULLABLE 
from table( getTables( null, '%', '%' ) ) t, 
     table( getColumns( null, '%', '%', '%') ) c 
where c.table_schem = t.table_schem 
and c.table_name = t.table_name 
and t.table_type = 'TABLE' 
order by table_schem, table_name, column_name;

可以从java.sql.DatabaseMetaData接口获取用于SQL子句的其他表和列属性及其相应的方法名称和属性(请参阅Java API)。

(有关详细信息,请参阅“Derby工具和实用程序指南”中的“使用databaseMetaData可选工具”)。

© www.soinside.com 2019 - 2024. All rights reserved.