【问题标题】:Can weblogic or other config affect the use of oracle table function?weblogic或其他配置会影响oracle表功能的使用吗?
【发布时间】:2017-01-25 03:35:15
【问题描述】:

我在使用oracle表函数时遇到了一个奇怪的问题。

两种环境:本地和远程,代码相同,只是一些配置不同,它们共享同一个数据库。 oracle表函数在我的本地环境中可以完美运行,但是我只是尝试使用一个非常简单的表函数时远程出现错误。

create type V as table of varchar2(4000);
/

CREATE FUNCTION test2 RETURN v IS
BEGIN
  RETURN v('a', 'b');
END test2;
/

我在plsql中使用 below 进行了测试,这里出现了无效标识符错误。

select * from table(Test2());

ORA-00904: : 无效标识符

标识符名称应该是错误消息的一部分也很奇怪,但它不存在。单独的查询可以在 plsql developer 中很好地工作。并且Test2函数如果不用于表函数,在本地和远程都可以很好地工作。

本地和远程的代码是一样的。只有 weblogic 配置、jdbc 驱动版本等可能不同。除了双方共享的数据库外,我无法访问远程环境。我试图在网上搜索问题,但没有找到答案。所以我希望这里的一些成员可以对这个问题有所了解。非常感谢任何帮助。

db 和 weblogic 版本:

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

应用服务器 - Weblogic 10.3.3.0

ps:我发现有人在 community.oracle.com 上发布了一个类似的问题,但尚未解决。 https://community.oracle.com/thread/2503982

【问题讨论】:

  • 感谢 Justin Cave 编辑我的帖子。
  • 如果不能访问远程环境,怎么知道你的类型和函数创建成功了?您是否以远程环境中类型和功能的所有者身份登录?还是您需要完全限定名称?
  • @Justin Cave:本地和远程共享同一个数据库。因此,如果我对数据库进行更改,它将对两个环境都有影响。对困惑感到抱歉。我应该说我无法访问远程中的weblogic环境等。
  • @Justin Cave 1. 类型和函数创建成功。 2.我在本地和远程共享的db中以所有者身份登录,所以我认为它与权限无关。 3.名称无需限定,类型和功能在全局范围内供测试使用。

标签: java oracle11g weblogic


【解决方案1】:

好吧,我错了。原来是一个与特权有关的问题。

像下面这样运行sql后,问题解决了。

GRANT EXECUTE ON "DB_USERNAME"."TEST" TO "DB_USERNAME_USER";

【讨论】:

  • 那么,据推测,至少非工作环境没有以流水线表函数的所有者身份登录。
猜你喜欢
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多