Oracle 数据库存储过程序修改记录出现问题!急急急 ( 积分: 50 )

  • 主题发起人 主题发起人 necyhk
  • 开始时间 开始时间
N

necyhk

Unregistered / Unconfirmed
GUEST, unregistred user!
我创建了一个表<br>Create&nbsp;table&nbsp;hr.emp<br>(<br>&nbsp;ID&nbsp;varchar2(10)&nbsp;constraint&nbsp;EMP_PK&nbsp;primary&nbsp;key&nbsp;,<br>&nbsp;MemberNO&nbsp;varchar(20)&nbsp;not&nbsp;null,<br>&nbsp;MemName&nbsp;varchar(20)&nbsp;not&nbsp;null<br>)<br><br>对这个表我写了一个存储过程,用于插入与修改表记录,<br>create&nbsp;or&nbsp;replace&nbsp;procedure&nbsp;hr.SP_EMP_UPDATE<br>(&nbsp;pID&nbsp;in&nbsp;varchar&nbsp;default&nbsp;null,<br>&nbsp;&nbsp;pMemberNO&nbsp;in&nbsp;varchar&nbsp;default&nbsp;null,<br>&nbsp;&nbsp;pMemName&nbsp;in&nbsp;varchar&nbsp;default&nbsp;null<br>)<br>is<br>&nbsp;&nbsp;pCount&nbsp;int;<br>begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;count(*)&nbsp;into&nbsp;pCount&nbsp;from&nbsp;hr.emp&nbsp;where&nbsp;ID=pID;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;pCount&nbsp;=&nbsp;0&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert&nbsp;into&nbsp;hr.emp&nbsp;values(pid,pMemberNo,pMemName);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update&nbsp;hr.emp&nbsp;set&nbsp;MemberNO=pMemberNO,MemName=pMemName<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;ID=pID;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br>end;<br><br>--------------------------------------<br>--&nbsp;Created&nbsp;on&nbsp;2007-4-16&nbsp;by&nbsp;JUNY&nbsp;<br>declare&nbsp;<br>&nbsp;&nbsp;--&nbsp;Local&nbsp;variables&nbsp;here<br>&nbsp;&nbsp;i&nbsp;integer;<br>begin<br>&nbsp;&nbsp;--&nbsp;Test&nbsp;statements&nbsp;here<br>&nbsp;&nbsp;hr.sp_emp_update('2','00000','Jack');<br>end;<br><br>在此调用,可是数据并没有插入到数据库去,这是为什么呀
 
没有commit
 
为什么在存储过程中还要commit呀
 
对于PROCEDURE、FUNCTION、PACKAGE和TRIGGER,在它们中调用的任何SQL或PL/SQL都不会自动提交。<br>参考:<br>http://www.itpub.net/359147,2.html
 
搞定,多谢两位相助
 
后退
顶部