急求急求

java高富帅 2014-12-30 11:06:13
create or replace procedure pk_lyy_sjhz
is
// 存储过程
procedure pk_lyy_org
(
WSYHS varchar2,
WSYL1 varchar2,
DWDM varchar2
)
is
wd varchar2(32);
begin
update sjhz set WSYL1=WSYL1 where DWDM=DWDM;
commit;
select * from sjhz
end;

我这个存储过程怎么不对吗
...全文
476 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如图所示,这个解决方法只是解决的你语法问题,关于执行结果你自己去搞定,建议还是去看下存储过程的基本知识
aoxuelingshuang 2015-02-05
  • 打赏
  • 举报
回复
存储过程我是刚学不久,但是看到你写的这个存储过程,我觉得你很有必要将存储过程的基本知识点看看。首先你定义变量名和字段名应该要不相同吧,不然你使用的时候系统也不知道你使用的是哪一个啊。还有就是你在存储过程执行中写入select查询语句明显是不合法的啊。你可以运用游标的相关知识来达到查询操作。建议看看基础。
rick-he 2015-01-16
  • 打赏
  • 举报
回复
1:过程里面不可以定义过程,可以调用.你可以建立个包体,包体里定义过程 2:你的update语句字段名和变量名同名,这是个恒等式,
xiesongque 2015-01-15
  • 打赏
  • 举报
回复
update sjhz set WSYL1=WSYL1 where DWDM=DWDM; 上个月我正好碰到这个问题,字段名和变量名不要同名,大小写不一样也不要,不然这等式相当于1=1,永远为true。 select * from sjhz 如果你可在存储过程中查询,你要定义游标,将查到的结果存到游标中,再在你的程序中显示。直接在存储过程中查询是看不到任何结果的。
卖水果的net 2015-01-09
  • 打赏
  • 举报
回复
oracle 中纯粹的 select 语句不能单独使用, 另外, update sjhz set WSYL1=WSYL1 where DWDM=DWDM; 这个语句,会不起作用,你的变量名字和列名一样了。
小灰狼W 2014-12-30
  • 打赏
  • 举报
回复
create or replace procedure pk_lyy_sjhz is // 存储过程 procedure pk_lyy_org 这是要干嘛,存储过程到底叫哪个呢。改成 create or replace procedure pk_lyy_org update sjhz set WSYL1=WSYL1 where DWDM=DWDM; 这里有歧义,变量名和字段名要区分开 下面的select * from sjhz 会报错 在存储过程中执行查询没有意义,也是不符合语法的,去掉

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧