永洪社区

标题: 自定义数据源,创建数据集时会查询system.jdbc.columns表异常 [打印本页]

作者: Robots2    时间: 2023-5-16 17:59
标题: 自定义数据源,创建数据集时会查询system.jdbc.columns表异常
自定义数据源,使用类似presto数据源查询数据(图1)。遇到问题:使用该数据源制作数据集时,会查询system.jdbc.columns表来获取表字段的描述信息。where后面拼接的TABLE_NAME为空,想知道这个字段来源于哪,如何才能拼接正常。
导致别名信息没展示出来


类似:SELECT COLUMN_NAME, REMARKS, TABLE_NAME FROM system.jdbc.columns WHERE 1 = 1 and (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'id' ) or (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'name' ) or (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'type' ) or (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'config' ) or (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'creator' ) or (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'project_id' ) or (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'create_time' ) or (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'update_time' )







作者: yhdata_yzm    时间: 2023-5-16 17:59
Robots2 发表于 2023-5-17 13:44
自定义的驱动和数据源,已找到原因。
是腾讯dlc提供的ResultSetMetaData的 tableName设置成空格,正常驱动 ...

好的
作者: Robots2    时间: 2023-5-16 18:25
正常的话TABLE_NAME应该是表的名字,这里拼接的是空导致搜不到表的描述信息
作者: Robots2    时间: 2023-5-17 10:33
有人可以帮忙解答下吗,可以远程视频
作者: yhdata_lyaa    时间: 2023-5-17 10:40
连接数据源的高级属性,
显示别名勾了么
勾选后在数据集端会获取数据库中列的comment作为别名,默认在新建时是勾选状态。
*不适用于HBASE,ELASTIC SEARCH数据源
https://www.yonghongtech.com/rea ... A%E5%88%AB%E5%90%8D
作者: Robots2    时间: 2023-5-17 10:53
勾选了,可以腾讯会议协助看看吗
作者: Robots2    时间: 2023-5-17 11:05
勾选后会会执行一个SELECT COLUMN_NAME, REMARKS, TABLE_NAME FROM system.jdbc.columns WHERE 1 = 1 sql,这个sqlh=后面拼接的筛选条件有问题,想知道TABLE_NAME是从哪获取的
作者: yhdata_lyaa    时间: 2023-5-17 11:23
根据提供的查询条件,TABLE_NAME条件中的值为空字符串。您需要将空字符串替换为实际的表名,以获取与指定表相关的列信息。
作者: Robots2    时间: 2023-5-17 11:46
这个TABLE_NAME是永洪上生成的,可能是根据前一条sql生成的。接收到后不知道实际查询的表名
作者: yhdata_yzm    时间: 2023-5-17 13:35
驱动确认你是对应数据版对应版本的驱动吗
作者: Robots2    时间: 2023-5-17 13:44
自定义的驱动和数据源,已找到原因。
是腾讯dlc提供的ResultSetMetaData的 tableName设置成空格,正常驱动是返回null。
猜测永洪收到空格会覆盖TABLE_NAME原始值,生成了TABLE_NAME= ' '的sql
SELECT COLUMN_NAME, REMARKS, TABLE_NAME FROM system.jdbc.columns WHERE 1 = 1 and (TABLE_CAT = 'dlc_emr_cos' and TABLE_SCHEM = 'bdg_app' and TABLE_NAME = ' ' and COLUMN_NAME = 'id' )




欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4