创建Oracle procedure 输入参数后 修改多种表数据,为什么创建procedure会报错,一楼贴出代码,请帮忙看下

dillonma 2014-11-27 11:54:17
CREATE OR REPLACE PROCEDURE  PS_OA_EMPLINFO_U_PRO
(emplid in varchar2,
mar_status in varchar2,
religion_cd in varchar2
--shengao in varchar2,wk_jjlx_name in varchar2,wk_jjlx_phone in varchar2,
--mobilephone in varchar2,jiaphone in varchar2,
--huji_address in varchar2,jia_address in varchar2
)
is
begin
update PS_PERS_DATA_EFFDT P set P.MAR_STATUS=mar_status where P.EMPLID=emplid;
update PS_DIVERS_RELIGION Z set Z.RELIGION_CD=religion_cd where Z.EMPLID=emplid;
--update Ps_Wk_Other set wk_jjlx_phone=wk_jjlx_phone,wk_shengao=shengao where emplid=emplid;
--update Ps_Wk_Other_Lang set wk_jjlx_name=wk_jjlx_name where emplid=emplid;
--update PS_PERSONAL_PHONE set phone=mobilephone where phone_type='MAIN' and emplid=emplid;
--update PS_PERSONAL_PHONE set phone=jiaphone where phone_type='HOME' and emplid=emplid;
--update PS_WK_ADDRESS_LANG set address1=huji_address where address_type='HUJI' and emplid=emplid;
--update PS_WK_ADDRESS_LANG set address1=jia_address where address_type='HOME' and emplid=emplid;
commit;
end PS_OA_EMPLINFO_U_PRO;
/


要是把“ update PS_DIVERS_RELIGION Z set Z.RELIGION_CD=religion_cd where Z.EMPLID=emplid;”去掉后执行能成功创建。语法写的应该没有问题呀!
...全文
314 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2014-11-27
  • 打赏
  • 举报
回复
修改你的参数名称 在sql语句中,oracle优先把单词解析为字段,如果没有字段叫这个名字才会去看有没有变量是这个名字 如条件中where Z.EMPLID=emplid,会查询到全表的数据
dillonma 2014-11-27
  • 打赏
  • 举报
回复
引用 1 楼 bw555 的回复:
修改你的参数名称 在sql语句中,oracle优先把单词解析为字段,如果没有字段叫这个名字才会去看有没有变量是这个名字 如条件中where Z.EMPLID=emplid,会查询到全表的数据
好的谢谢!

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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