我有一个我在sql Server中使用的脚本,但我需要将其转换为Oracle格式.有人可以帮忙吗?
UPDATE PERSONS P SET P.JOBTITLE=TE.JOBTITLE,P.LAST_NAME=TE.LAST_NAME,P.FirsT_NAME=TE.FirsT_NAME,P.DBLOGIN_ID=TE.DBLOGIN_ID,P.EMAIL_ID=TE.EMAIL_ID,P.USERLEVEL=TE.USERLEVEL,P.FACILITY_ID=TE.FACILITY_ID,P.SUPERVISOR=TE.SUPERVISOR,P.DEPARTMENT=TE.DEPARTMENT,P.WINLOGINID=TE.WINLOGINID FROM TEMP_ECOLAB_PERSONS TE WHERE P.PERSON=TE.PERSON;
– 从下面的文章中我得出以下声明.不幸的是,它仍然不起作用:
UPDATE (SELECT P.JOBTITLE,P.LAST_NAME,P.FirsT_NAME,P.DBLOGIN_ID,P.EMAIL_ID,P.USERLEVEL,P.FACILITY_ID,P.SUPERVISOR,P.DEPARTMENT,TE.JOBTITLE,TE.LAST_NAME,TE.FirsT_NAME,TE.DBLOGIN_ID,TE.EMAIL_ID,TE.USERLEVEL,TE.FACILITY_ID,TE.SUPERVISOR,TE.DEPARTMENT FROM PERSONS P,TEMP_ECOLAB_PERSONS TE WHERE P.PERSON=TE.PERSON) SET P.JOBTITLE=TE.JOBTITLE,P.DEPARTMENT=TE.DEPARTMENT;
解决方法
我就是这样做的.它可能不是最好的表现,但它确实有效.
MERGE INTO PERSONS_TMP PT USING ( SELECT P.PERSON,P.JOB_TITLE,P.FACILITY_ID FROM PERSONS P) TMP ON (PT.PERSON = TMP.PERSON) WHEN MATCHED THEN UPDATE SET PT.FACILITY_ID = TMP.FACILITY_ID,PT.JOB_TITLE = TMP.JOB_TITLE,PT.FirsT_NAME = TMP.FirsT_NAME,PT.LAST_NAME = TMP.LAST_NAME;
上面的脚本将使用PERSONS表中的数据更新PERSONS_TMP表中的信息.我相信你的情况,你想要反过来.因此,请确保在运行脚本之前进行必要的更改.
原文地址:https://www.jb51.cc/mssql/79455.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。