使用oracle存储过程,很好的初学者资源,可以开始使用Oracle存储过程

博主在寻找适合初学者的Oracle存储过程学习资源,尝试了DevShed和Oracle官方文档,但遇到问题。在尝试创建基本存储过程时遇到错误。在社区帮助下,发现需要使用`CALL`关键字来执行存储过程,而不是`EXECUTE`。最终成功调用存储过程,但对为何`CALL`有效而`EXECUTE`无效感到困惑。
摘要由CSDN通过智能技术生成

我正在寻找面向初学者的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的帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值