3
상관 업데이트에 대한 Oracle 10g 구문에 문제가 있습니다. PL/SQL 프로 시저에서이 코드를 처리하고 있습니다.Oracle 상관 업데이트
나는 그래서 SQL Server의 문제를 접근 것 :
UPDATE table_a a
SET a.prov_id=pn.prov_id,
a.step=1
from (
SELECT p.prov_id
FROM note n
INNER JOIN provider p ON n.author_id=p.user_id
where n.enc_id=a.enc_id
AND TRUNC(n.note_time)=a.attr_date
) pn
등가 오라클 구문은 다음과 같습니다
UPDATE table_a a
SET a.prov_id=(
SELECT p.prov_id
FROM note n
INNER JOIN provider p ON n.author_id=p.user_id
where n.enc_id=a.enc_id
AND TRUNC(n.note_time)=a.attr_date
),
a.step=1
WHERE EXISTS (
SELECT *
FROM note n
INNER JOIN provider p ON n.author_id=p.user_id
where n.enc_id=a.enc_id
AND TRUNC(n.note_time)=a.attr_date
)
이 사실에 두 번, 서브 쿼리를 실행합니까? 이보다 약식 구문이 있습니까?
SQL 키워드 'MERGE'를 살펴보십시오 : SQL Server와 Oracle 모두에서 지원되며 Standard SQL을 기반으로하므로이 SQL 제품간에 이식성이 뛰어납니다. – onedaywhen