这是我创建包的脚本:
CREATE OR REPLACE PACKAGE PP AS
TYPE REFCURSOR IS REF CURSOR;
FUNCTION getData(id IN VARCHAR2) RETURN REFCURSOR;
END PP;
该包是在第一次运行时创建的。我添加了一个程序并尝试编译,它给出了一个错误:
ORA-00955: 名称已被现有对象使用
如何重新创建包?
这是我创建包的脚本:
CREATE OR REPLACE PACKAGE PP AS
TYPE REFCURSOR IS REF CURSOR;
FUNCTION getData(id IN VARCHAR2) RETURN REFCURSOR;
END PP;
该包是在第一次运行时创建的。我添加了一个程序并尝试编译,它给出了一个错误:
ORA-00955: 名称已被现有对象使用
如何重新创建包?
包声明后缺少尾随字符。它应该是这样的:
尾随字符“/”和“;”的区别和共性 在SQL Developer中:
一个编辑器选项卡 ( SQL Worksheet ) 可以包含多个查询和匿名块。因此,要执行单个查询或块(默认情况下使用 CTRL-ENTER),您必须:
特别是不包含 PL/SQL 块的 SQL 查询 - 所有 DML、一些 DDL、DCL - 必须在新行上以“;”或“/”终止。
包含 PL/SQL 块 (
create ... package/function/trigger/...) 或可能包含一个 (create ... type) 的匿名块和 SQL 查询必须以“/”终止,因为 “;” 终止块中的最后一个 END。如果SQl Developer没有找到尾随字符,它会在文本的下方搜索它们,当它找到它们时(如果它没有找到它们,则到文本的末尾),它会依次发送几个请求,从而导致到一个未定义的结果。通常,对于不完全清楚的运行时错误。
例如:
注意:如果一个查询或块是可视选择的,那么SQl Developer将只执行选择,即使没有尾随字符。