【java/jdbc】如何用程序动态查询某型数据库所允许的最大表名长度

【需求】

程序中需要建表,需要动态知道DB系统所允许的表名最大长度。

如果按11g允许的30位给12c,19c设置,那么后两者实际允许的128位就被武断限制了。

【思路】

使用create table tname(df char(1));这样的语句建表,不断加长tname的长度,当建表出现异常时,回退一位便是系统允许的最大表名长度。

【程序】

Test类:

复制代码
package com.hy.lab.tablelength;

import java.sql.Connection;
import java.sql.Statement;

public class Test {
    public static void main(String[] args){
        System.out.println(probeMaxLen());
    }

    public static int probeMaxLen(){
        int retval=30;
        String tname="t1234";

        try(Connection conn=DbUtil.getConn();
            Statement stmt=conn.createStatement()){

            while(true){
                tname+="0";

                String createSql=String.format("create table %s(fd char(1))",tname);
                stmt.execute(createSql);

                String deleteSql=String.format("drop table %s purge",tname);
                stmt.execute(deleteSql);
            }
        }catch(Exception ex){
            retval=tname.length()-1;
        }

        return retval;
    }
}
复制代码

 

DbUtil类:

复制代码
package com.hy.lab.tablelength;

import java.sql.Connection;
import java.sql.DriverManager;

public class DbUtil {
    //-- 以下为连接Oracle数据库的四大参数
    private static final String DRIVER = "oracle.jdbc.OracleDriver";
    private static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521/orcl";
    private static final String USER = "luna";
    private static final String PSWD = "1234";

    public static Connection getConn() throws Exception{
        Class.forName(DRIVER);
        Connection conn = DriverManager.getConnection(URL, USER, PSWD);
        return conn;
    }
}
复制代码

 

【输出】

30

【扩展思路】

可以用一张表把DB和对应的允许长度存起来,第二次便可以从表中取了。

 

END

posted @   逆火狂飙  阅读(120)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2016-08-01 问题 “No mapping found for HTTP request with URI [/rbiz4/uploadFile.html]” 的解决
2014-08-01 爪哇国新游记之二十五----图及其遍历查找
2014-08-01 爪哇国新游记之二十四----二叉树
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示