Oracle 10g提供的软件包不可用
我是学生学习PL/SQL。我有一个本地安装10g我正在运行我的查询。每当我尝试使用DBMS_ALERT,DBMS_PIPE或其他默认包时,我都会收到“无效的SQL”消息。我已经在TOAD和SQL + Plus中尝试了相同的结果。这会让我相信这些软件包没有安装,或者无法访问我的用户会话。我使用'SYS'用户登录,所以我不认为权限会成为问题。Oracle 10g提供的软件包不可用
有人可以请教我如何使这些软件包avaialble?我的印象是他们默认提供的印象?
非常感谢你,
凯尔
这些软件包可能根本就没有安装。如果您想安装它们,请查看$ ORACLE_HOME/rdbms/admin目录并以SYS运行脚本。我包含了上面列出的软件包的文件参考。
DBMS_ALERT dbmsalrt.sql和prvtalrt.plb
DBMS_PIPE dbmspipe.sql和prvtpipe.plb
有一件事你可能是做错了试图调用一个PL/SQL函数或过程的PL/SQL块之外。您可能需要换到程序调用begin
和end
,例如:
SQL> dbms_lock.sleep(1); SP2-0734: unknown command beginning "dbms_lock...." - rest of line ignored. SQL> begin dbms_lock.sleep(1); end; 2/ PL/SQL procedure successfully completed.
(上本身就是一个线单/
告诉SQL * Plus的是这就是输入的结束通常情况下,在SQL * Plus使用分号来标记语句的结尾,但是,PL/SQL可以包含分号,如果SQL * Plus识别出您正在输入PL/SQL,则在将其输入传递给它之前,它将自行等待单个/
数据库。)
您看到的错误的另一个可能的原因是您正尝试在查询中调用存储过程。这是不可能的,因为存储过程不会返回结果。诚然,你如果你尝试调用一个查询中的程序错误是不是特别有帮助:
SQL> select dbms_alert.register('test') from dual; select dbms_alert.register('test') from dual * ERROR at line 1: ORA-00904: "DBMS_ALERT"."REGISTER": invalid identifier
原因这个错误可能是甲骨文不打扰存储过程中寻找名称dbms_alert.register
,而是给出了一个通用的'我找不到这个名字'的错误。
如果您的问题不是我所描述的任何一种,请告诉我。
请告诉我们您正在运行的SQL – 2011-04-20 17:12:18