我正在寻找面向初学者的Oracle存储过程的良好资源。我试过了
Dev Shed Article
和
one from Oracle Documentation site
但他们不能满足我的需要。Oracle文档站点的一种形式具有Java示例的开销。我尝试了dev-shed方法,但在尝试它们的示例时,我总是得到无效的SQL错误。下面是我尝试运行的基本版本:
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
NULL;
END;
EXECUTE skeleton;
我是犯了一个新手错误还是文章中的语法过时了?我正在与Oracle10g&pl/SQL开发人员合作。
谢谢!
解决方案:
根据@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:无效的SQL语句错误。我想知道为什么会出现这种情况
this thread
. 我决定试试打电话,所以我尝试了以下方法:
CALL p_getdate;
但这并没有起到同样的作用。我仔细阅读了这条线索,并怀疑地尝试过:
CALL p_getdate();
瞧,我的程序被正确地调用了。我没有一个答案来解释为什么这项工作有效,但事实上,它的工作允许我向前推进我的项目。如果有人能向我解释这是为什么的话,我很想了解更多。
再次感谢@curtisk的帮助!