NutzCN Logo
精华 连接其他数据库(KingBaseESV8)操作时,获取ID字母转为16进制
发布于 1920天前 作者 qq_2bf722cc 3043 次浏览 复制 上一个帖子 下一个帖子
标签: ssdb

db = DB.OTHER, value="SELECT sys_guid() FROM dual"

该语句在数据库客户端没问题,一旦使用nutz的dao方法执行(查询,新增),返回的值里面,字母都转为了16进制

5 回复

是自定义sql?用了哪种回调?

sql = SELECT sys_guid() FROM dual
是自定义sql。
该sql在oracle、KingBaseESV8执行效果都一样。

不管是新增(逐渐策略),还是单独查询,这个sql的返回结果里面,凡是字母都转成16进制了

在客户端执行都没问题。主要在dao里面就有问题了。

Connection con;
        Class.forName("com.kingbase8.Driver"); 
        String url = "jdbc:kingbase8://192.168.1.125:54321/ttt";
        con = DriverManager.getConnection(url,"SYSTEM","111111");
        Statement statement = con.createStatement();
        ResultSet set = statement.executeQuery("SELECT sys_guid() FROM dual");
        while (set.next()){
            Object s = set.getString(1);
            System.out.println(s);
        }
        //结果打印: \x3430463242373331304539453445353341444135443231313237323746303746

解决了,这个可能是数据库机制的问题。

将
SELECT sys_guid() FROM dual
替换为
SELECT sys_guid_name() FROM dual
即可
添加回复
请先登陆
回到顶部