oracle 最简单的存储过程 报错

[复制链接]
查看11 | 回复3 | 2012-2-13 16:34:09 | 显示全部楼层 |阅读模式
错误的根本原因在于Oracle的存储过程和函数并不能直接返回查询结果集(并非不能,“没有做不到,只有想不到”,呵)。也就是说在Oracle存储过程或函数中直接写查询返回结果集是非法的(在SQL Server是可以的)。与SQL Server的存储过程和函数均可以返回结果集不同的是,PL/SQL的存储过程和函数均不直接提供返回数据集的方法,但可以通过返回类型对象来实现返回数据集的效果。具体思路为:(1)创建包头,在其中声明类型和存储过程,类型应该引用游标;(2)创建包体,定义存储过程,执行查询,将查询得到的结果集以游标句柄的形式返回。说明:游标分为显示游标和隐式游标,任何查询结果默认都提供隐式游标,当前方案的重点在于使用游标取得查询结果的...
回复

使用道具 举报

千问 | 2012-2-13 16:34:09 | 显示全部楼层
CREATE OR REPLACE procedure query_cnumber isbeginselect * from order_merpos_amt;在这后面加个;号就可以了!end;...
回复

使用道具 举报

千问 | 2012-2-13 16:34:09 | 显示全部楼层
你没有insert 语句啊?这样写CREATE OR REPLACE procedure query_cnumber isp1 number :=0;beginselect 1 into p1 from order_merpos_amt where rownum<=1;end query_cnumber ;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行