当前使用版本(必填,否则不予处理)

3.3.2、3.3.1 or even earlier version

该问题是如何引起的?(确定最新版也有问题再提!!!)

compare with detault MySqlQuery.java,due to the difference of native sql in tableFieldsSql() method,the result with column in mysql alias named DATE_TYPE,contain not only the the column type but also the column length,such as varchar(32).But in the OracleQuery.java,the default native sql column DATE_TYPE in tableFieldsSql() method,only queryd with the result such as NVARCHAR2,missing the dataLength,so it causes the some class extends the OracleTypeConvert.java,in the override method public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType), the fieldType param missting the dataLength,that makes we can not translate to the different Java type by length.

重现步骤(如果有就写完整)

the native sql ELSE A.DATA_TYPE END DATA_TYPE in line 18(version 3.3.2,OracleQuery.java) change to ELSE A.DATA_TYPE END || '(' || A.DATA_LENGTH ||')' AS DATA_TYPE can be compatible with mysql format. But other database dbquery native sqls,such as MSSql,Db2 are not tested by me.Please checkout it.

报错信息

none error but missing nesessary info.

Comment From: daselang

    return "SELECT A.COLUMN_NAME, CASE WHEN A.DATA_TYPE='NUMBER' THEN "
            + "(CASE WHEN A.DATA_PRECISION IS NULL THEN A.DATA_TYPE || '(' || A.DATA_LENGTH ||')'  "
            + "WHEN NVL(A.DATA_SCALE, 0) > 0 THEN A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')' "
            + "ELSE A.DATA_TYPE||'('||A.DATA_PRECISION||')' END) "
            + "ELSE A.DATA_TYPE || '(' || A.CHAR_LENGTH||')' END DATA_TYPE, B.COMMENTS,DECODE(C.POSITION, '1', 'PRI') KEY "
            + "FROM ALL_TAB_COLUMNS A "
            + " INNER JOIN ALL_COL_COMMENTS B ON A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME AND B.OWNER = '#schema'"
            + " LEFT JOIN ALL_CONSTRAINTS D ON D.TABLE_NAME = A.TABLE_NAME AND D.CONSTRAINT_TYPE = 'P' AND D.OWNER = '#schema'"
            + " LEFT JOIN ALL_CONS_COLUMNS C ON C.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.COLUMN_NAME=A.COLUMN_NAME AND C.OWNER = '#schema'"
            + "WHERE A.OWNER = '#schema' AND A.TABLE_NAME = '%s' ORDER BY A.COLUMN_ID ";

Comment From: daselang

I fixed the whole sql above.

Comment From: qmdx

I fixed the whole sql above.

请问是什么原因,如果是bug 请打开并指出具体位置谢谢