Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用ij时,Derby列名会被截断_Sql_Derby - Fatal编程技术网

Sql 使用ij时,Derby列名会被截断

Sql 使用ij时,Derby列名会被截断,sql,derby,Sql,Derby,当我键入“descripe[someTable];”时,很长的列(超过20个字符)的列名将被截断,并使用&符号。例如,我有两个列,它们似乎被命名为WowThisIsAVeryLongC& 当我运行select*语句时,列名也会被截断,因为其中的数据只有2或3个字符长。我尝试对表使用系统调用,并选择将数据导出到CSV,但这些并没有给我任何标题信息。MaximumDisplayWidth仅更改所显示数据的宽度。我找不到任何方法来找出这些列的正确名称。这是我继承的数据库,所以我有点卡住了 非常感谢您的

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

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


非常感谢您的任何帮助。

尝试使用IJ中的help命令。这应该让您指向
如果您使用的是Derby Release 10.10+,那么也可以使用databaseMetaData工具

这里的输出几乎与您从
descripe'*'
命令中获得的输出相同:

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;
SQL子句中使用的其他表和列属性可以从java.SQL.DatabaseMetaData接口及其相应的方法名称和属性中获得(请参阅java API)


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

是否需要工作?就是这样。谢谢约阿希姆。作为记录,表格也太大,无法从终端复制文本。我只是将所有表名和列名输出到一个文件中。很好,再次感谢。我在下面粘贴修改过的SQL查询,希望它能帮助将来的人。SYSCS_UTIL.SYSCS_EXPORT_查询(在'SELECT TABLENAME,COLUMNNAME,t.*FROM sys.systables t,sys.syscolumns WHERE TABLEID=REFERENCEID','/opt/SomeFileName.txt',null,null,null)这将设置数据的列宽,但不会将列名的字段增加到超过10