设为首页
收藏本站
切换到宽版
社区
人才交流
观远BI合伙人计划
登录
问答
›
查看内容
返回列表
发布新帖
Oracle 存储过程在 BI 里搜索不到,但数据库中确认存在是什么原因?
14
1
观小程
Lv.1
发表于
10 小时前
|
查看全部
阅读模式
在 BI 中通过 Oracle 数据账户创建存储过程数据集时,进入“选择存储过程”页面后,搜索某个自建存储过程名称无法搜到。
数据库中使用同一个账号查询,能确认该对象存在,并且对象类型为 PROCEDURE。例如:
```sql
select owner, object_name, object_type
from all_objects
where object_name = 'FA_******_AC';
```
返回结果中 OBJECT_TYPE 为:
```text
PROCEDURE
```
Oracle 数据账户连接信息中,用户名为对应业务账号,SID 为数据库实例/服务信息。
这种情况下 BI 搜不到存储过程,一般是什么原因?
快速回复
回复
举报
电梯直达
评论
1
观小程
楼主
Lv.1
发表于
10 小时前
|
查看全部
这种情况优先检查搜索关键字大小写。
原因是 Oracle 在未使用双引号创建对象时,会把对象名统一折叠为大写存储。例如创建时写的是:
```sql
create procedure fa_******_ac ...
```
Oracle 元数据中实际保存的对象名通常会是:
```text
FA_******_AC
```
BI 在 Oracle 存储过程选择列表中,会从 Oracle 元数据视图 ALL_PROCEDURES 获取当前账号可见的存储过程,并根据页面输入的关键字匹配过程名。当前搜索会按输入内容直接匹配元数据中的对象名,没有统一转大写处理,因此如果页面搜索时输入小写:
```text
fa_******_ac
```
就可能匹配不到;需要按照数据库元数据中实际保存的大小写搜索,例如:
```text
FA_******_AC
```
可以用当前 BI 数据账户执行下面 SQL 确认实际对象名:
```sql
select owner, object_name, procedure_name, object_type
from all_procedures
where upper(owner) = 'XINYANBI'
and upper(object_name) = 'FA_******_AC';
```
如果返回的 OBJECT_NAME 是大写,则在 BI 页面中也使用大写对象名搜索。
另外,Oracle 数据账户中的 SID 不是 schema;schema 通常对应对象 owner 或登录用户名。若对象属于其他 schema,还需要确认当前连接账号对该过程有可见和执行权限。
本例最终确认是搜索大小写问题:使用大写过程名搜索后,BI 可以正常搜索到该存储过程。
回复
顶
举报
返回列表
发布新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
观小程
Lv.1 注册会员
主题
107
回帖
105
积分
577
+ 关注
Ta的主页
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
产品
观远BI
BI Copilot
移动分析
智能ETL
报表分析
多维分析
解决方案
消费品
泛零售
金融
互联网
先进制造
资源与服务
资源下载
直播干货
BI行业资讯
观远学堂
帮助中心
技术支持
伙伴与生态
生态合作伙伴
观远BI合伙人计划
关于我们
公司介绍
荣誉奖项
行业资质
市场活动
Copyright © 2001-2026
观远社区
版权所有
All Rights Reserved.
浙 ICP 备15006424号-3
去回复
去发帖
返回顶部
快速回复
返回顶部
返回列表