如何在plsql中编译在包内创建的新函数,以查看等语法错误
不能编译单个函数-编译整个包。
如果你担心的是在功能出现错误的情况下使整个包无效,那么
- 创建一个独立函数(即在包外(
- 调试它
- 确定后(没有语法错误,按预期返回结果(,将其包含在包中
除了@Littefoot的建议之外,我还想说:使用合适的GUI。Oracle有一个名为sql developer的免费工具。它有一个很好的界面来编辑数据库对象(包/函数/过程/触发器(。它突出了错误,并有很好的文档记录(https://www.thatjeffsmith.com/sql-developer/)。请注意,is并没有指出语法错误,但一旦您稍微习惯了使用pl/sql,它们就会很快变得显而易见。
在Oracle中,编译过程/函数/包之后。如果出现错误,则命令将返回消息:
ORA-24344: success with compilation error
然后您可以使用:
SHOW ERRORS
或
SELECT * FROM USER_ERRORS;
或者,例如,针对特定模式中包的错误:
SELECT *
FROM ALL_ERRORS
WHERE owner = 'SCHEMA_NAME'
AND type IN ( 'PACKAGE', 'PACKAGE BODY');
它将列出错误(包括行号和错误消息(,然后您可以调试过程/函数/包并重新编译它
小提琴