我正在寻找面向初学者的有关 Oracle 存储过程的良好资源。我尝试了Dev Shed 文章和Oracle 文档站点中的一篇文章,但它们不能满足我的需求。一种形式的 Oracle 文档站点具有 Java 示例的开销。我尝试了 Dev Shed 之一,但是当我尝试他们的示例时,我不断收到无效的 SQL 错误。这是我尝试运行的基本程序:
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
NULL;
END;
EXECUTE skeleton;
我犯了一个菜鸟错误还是文章中的语法已经过时了?我正在使用 Oracle 10g 和 PL/SQL Developer。
谢谢!
解决方案:
根据@curtisk 的建议,我尝试了一个稍微复杂的示例:
CREATE OR REPLACE PROCEDURE p_getdate
IS
BEGIN
dbms_output.put_line(TO_CHAR
(SYSDATE, 'MM-DD-YYYY HH24:MI:SS'));
END;
当我尝试像这样执行它时:
EXECUTE p_getdate
我得到 ORA-00900: Invalid SQL statement 错误。我寻找为什么会这样并偶然发现了这个线程。我决定试一试,所以我尝试了以下方法:
CALL p_getdate;
但这也不起作用。我阅读了更多内容并怀疑地尝试了:
CALL p_getdate();
瞧,我的程序被正确调用了。我不知道为什么它会起作用,但它起作用的事实让我可以继续我的项目。如果有人可以向我解释这是为什么,我很想了解更多。
再次感谢@curtisk 的帮助!