2015-01-21 83 views
0

Oracle中有一个包 - dbms_sqltune_util0,我想利用它。 当我运行时无法访问Oracle包中的函数

 desc dbms_sqltune_util0; 

我收到相应的描述。

但是,当我尝试使用这个包中包含的功能它不工作。这是什么意思?我应该获得许可证还是什么? 而我试图运行的查询是

 select dbms_sqltune_util0.sqltext_to_sqlid('select 1 from dual') from dual; 
+3

执行权限可能不在那里。用'dba'检查 – Exhausted 2015-01-21 11:34:09

+5

“不起作用”是什么意思? – 2015-01-21 11:47:51

+1

“它不起作用”不是一个非常好的解释它如何不工作。它是否给出错误信息?它只是没有做任何事情吗?当我运行你的测试代码时,我会正确返回'SQLID'。 – mmmmmpie 2015-01-21 13:02:06

回答

-1

您正在尝试使用Oracle 12c的包。你的标签说你正在使用Oracle 11g数据库。 据我所知,目前还没有Oracle 12c的Express Edition,所以答案是:是的,您需要许可才能使用此软件包。

顺便说一句:即使在Oracle 11g中,也不是每个版本的Oracle数据库都有可用的软件包。

+0

Oracle数据库对自己的认识是无知的。他们不知道您是否拥有使用某种产品的许可证。 'dbms_sqltune_util0'不是12c软件包,因为它可用的是11g EE。 – mmmmmpie 2015-01-21 13:02:57

+0

My Oracle 11.2.0.3数据库不知道这个包,我发现的唯一文档是12c。 – Henning 2015-01-21 13:33:34

+0

然后你和OP在同一条船上。 – mmmmmpie 2015-01-21 13:44:47