查詢db2、oracle、mysql表字段和注釋sql

1、查詢表字段和注釋sql

/**
     * 查詢表字段和注釋
     * @param tableName {表名}
     * @param schema {數(shù)據(jù)庫對象}
     * @param databaseType {shujukuleixing }
     * @return sql
     */
    public static String getTableColumns(String tableName, String schema, String databaseType){
        if (StringUtils.isEmpty(tableName) || StringUtils.isEmpty(schema) || StringUtils.isEmpty(databaseType)) {
            return null;
        }
        //查詢表字段和注釋sql
        String sql = "";
        if ("ORACLE".equals(databaseType.toUpperCase(Locale.ROOT))) {
            sql = "SELECT T.COLUMN_NAME AS COLNAME ,T.DATA_LENGTH AS LENGTH,C.COMMENTS AS REMARKS FROM USER_TAB_COLUMNS T INNER JOIN USER_COL_COMMENTS C  ON C.COLUMN_NAME=T.COLUMN_NAME and C.TABLE_NAME = T.TABLE_NAME WHERE C.TABLE_NAME='" + tableName + "'";
        } else if ("DB2".equals(databaseType.toUpperCase(Locale.ROOT))) {
            //"SCALE"
            sql = "SELECT COLNAME,LENGTH,REMARKS FROM SYSCAT.COLUMNS WHERE TABNAME='" + tableName + "' AND TABSCHEMA='" + schema + "'";
        } else if ("MYSQL".equals(databaseType.toUpperCase(Locale.ROOT))) {
            // TIPS MySQL分組查詢需要sql_mode移除ONLY_FULL_GROUP_BY,可以通過下面的語句修改
            //  SET sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
            sql = "SELECT COLUMN_NAME AS COLNAME, ( IFNULL( NUMERIC_PRECISION, 0 ) + IFNULL(CHARACTER_MAXIMUM_LENGTH,0) ) AS LENGTH, COLUMN_COMMENT AS REMARKS FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA ='" + schema + "'AND TABLE_NAME = '" + tableName + "'";
        }
        return sql;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容