Telosys连接Oracle成功却查询到0张表的问题求助
问题原因及解决办法
1. Schema参数配置错误
Oracle数据库中,Schema默认与数据库用户名同名且大写(Oracle默认大小写敏感,除非创建时特意设置不敏感)。你的配置中schema: !表示不指定Schema,这会导致Telosys无法定位到用户对应的表集合。
解决办法:
- 将
schema值改为你的数据库用户名的大写形式,比如用户名为CRISUSER,则配置:schema: CRISUSER - 若不确定用户名对应的Schema,可在SQL Developer中执行
SELECT USER FROM DUAL;查看当前用户的Schema名称。
2. 表类型参数未指定
你的配置中tableTypes:为空,默认情况下Telosys可能过滤掉了所有表类型。Oracle中常见的业务表类型为TABLE。
解决办法:
- 添加
tableTypes: TABLE到配置中,明确指定要获取的表类型:tableTypes: TABLE
3. 表名匹配规则缺失
虽然当前未设置表名过滤规则,但可尝试指定匹配所有表的规则,避免因默认匹配逻辑导致无表返回:
tableNamePattern: %
4. 元数据读取权限不足
连接测试成功不代表拥有读取数据库元数据的权限,Oracle中读取表元数据需要SELECT_CATALOG_ROLE或SELECT ANY DICTIONARY权限。
可以执行以下SQL检查权限:
SELECT * FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE '%CATALOG%' OR PRIVILEGE LIKE '%DICTIONARY%';
若没有对应权限,联系DBA授予即可。
内容的提问来源于stack exchange,提问作者gene b.
相关产品推荐
相关产品推荐

