当我输入“Describe [someTable];”时很长的列(超过20个字符)的列名被截断,&使用符号。例如,我有两列似乎被命名为WowThisIsAVeryLongC&。
当我运行select *语句时,列名也会被截断,因为它们中的数据只有2或3个字符长。我尝试使用系统调用表并选择将数据导出为CSV,但那些不会给我任何标题信息。 MaximumDisplayWidth仅更改显示的数据的宽度。我找不到任何方法来找出这些列的正确名称。这是我继承的数据库,所以我有点卡住了。
非常感谢任何和所有帮助。
答案 0 :(得分:0)
尝试在IJ中使用help命令。这应该指向你 MaximumDisplayWidth Command还有ij.maximumDisplayWidth property
答案 1 :(得分:0)
如果使用的是Derby版本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 接口及其相应的方法名称和属性(请参阅Java API)中获取用于SQL子句的其他表和列属性。
(有关更多信息,请参见“ Derby工具和实用程序指南”中的“使用databaseMetaData可选工具”。)
答案 2 :(得分:0)
如果只是为了转储 select 语句的输出,知道数据值将被完整显示最多 128 个字符(或使用 MaximumDisplayWidth 命令设置值时更多),您可以强制列名通过人为地增加 SELECT 查询中输出的数据值的大小,它比下面的数据值要长以完整显示。例如:
ij> select TAG as longColumnNameForShortData, SERIAL as longColumnNameForSerial from ID;
LO&|LONGCOLUMN&
---------------
TM1|23594000
TF1|0
TS1|27188000
然后用:
ij> select CHAR(TAG,30) as longColumnNameForShortData, CHAR(SERIAL,30) as longColumnNameForSerial from ID;
LONGCOLUMNNAMEFORSHORTDATA |LONGCOLUMNNAMEFORSERIAL
-------------------------------------------------------------
TM1 |23594000
TF1 |0
TS1 |27190000
... 有点笨,但是可以。