오라클을 처음 사용했습니다.
필자는 오라클에 Period, Open_Flag, Creation_Dt, Updated_B 컬럼의 4 개 컬럼을 가진 테이블을 가지고 있습니다. 기간 열은 테이블의 기본 키입니다.
필자는 테이블의 입력 매개 변수로부터 기간의 값을 검사 할 proc을 만들었습니다. 존재하는 경우 Open_flag의 값을 업데이트해야합니다. 그렇지 않으면 새 레코드가 삽입됩니다.
create or replace PROCEDURE PROC_REF_SAP_PERIOD( V_PERIOD IN NUMBER,V_OPEN_FLAG IN VARCHAR2,V_CREATION_DT IN DATE,V_UPDATED_BY IN VARCHAR2) AS BEGIN MERGE INTO REF_SAP_PERIOD T USING (SELECT * FROM REF_SAP_PERIOD WHERE PERIOD=V_PERIOD )S ON (T.PERIOD=S.PERIOD ) WHEN MATCHED THEN UPDATE SET OPEN_FLAG = V_OPEN_FLAG --WHERE PERIOD=V_PERIOD AND CREATION_DT=V_CREATION_DT AND UPDATED_BY=V_UPDATED_BY WHEN NOT MATCHED THEN INSERT (PERIOD,OPEN_FLAG,CREATION_DT,UPDATED_BY) VALUES (V_PERIOD,V_OPEN_FLAG,V_CREATION_DT,V_UPDATED_BY); END;
문제는 업데이트가이 경우 제대로 작동하지만 삽입이 작동하지 않는다는 것입니다.
도와주세요.병합에서 삽입 Oracle에서 작동하지 않습니다
-2
A
답변
0
테이블을 자신과 병합하고 기간별로 필터링합니다. 분명히, 존재하지 않는 가치를 그 자체로 결코 보지 못할 것입니다.
하여 사용 라인 대신이 줄을보십시오 :
using (select V_PERIOD "period" from dual)S
관련 문제
- 1. Oracle에서 column 문이 작동하지 않습니다.
- 2. 그룹 기능이 Oracle에서 작동하지 않습니다.
- 3. CTE With Oracle에서 삽입
- 4. Oracle에서 대량 삽입 성능
- 5. SELECT FOR UPDATE가 JDBC와 Oracle에서 작동하지 않습니다.
- 6. 삽입 트리거가 작동하지 않습니다. 삽입 트리거가 작동하지 않습니다.
- 7. 삽입 정렬 작동하지 않습니다
- 8. 힘내 병합에서 하위 모듈 변경 사항을보고하지 않습니다.
- 9. 는 어떻게 플럭스가 완료 병합에서 내장 않습니다
- 10. 자식 제거는 병합에서 커밋
- 11. 우발적 인 병합에서 커밋을 제거합니다.
- 12. 삽입 쿼리가 제대로 작동하지 않습니다.
- 13. Azure 삽입 스크립트가 작동하지 않습니다.
- 14. 삽입 쿼리가 PHP에서 작동하지 않습니다
- 15. Mysqli 삽입 명령이 작동하지 않습니다.
- 16. 삽입 트리거가 작동하지 않습니다. SQLite
- 17. 삽입 트리거가 sqlite에서 작동하지 않습니다
- 18. 어셈블러에서 삽입 정렬이 작동하지 않습니다.
- 19. 삽입 상자 그림자가 작동하지 않습니다.
- 20. 삽입 정렬이 제대로 작동하지 않습니다.
- 21. 삽입 메서드가 예상대로 작동하지 않습니다.
- 22. 여러 삽입 쿼리가 작동하지 않습니다.
- 23. 삽입 트리거가 제대로 작동하지 않습니다.
- 24. PHP에서 삽입 문이 작동하지 않습니다.
- 25. PHP 삽입 기능이 작동하지 않습니다.
- 26. PDO 삽입 쿼리가 작동하지 않습니다.
- 27. 삽입 트리거가 제대로 작동하지 않습니다.
- 28. Git 병합에서 파일 제외
- 29. 편지 병합에서 Java
- 30. Oracle에서 SQL Server 테이블에 행 삽입
하십시오, 텍스트 [하지 스크린 샷] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload -images-of-code-on-so-ask-a-question/285557 # 285557). 내가 너를 돕고 싶다고 해. 일부 텍스트를 게시 한 경우 코드를 쉽게 복사하여 시도하고 편집 할 수 있습니다. 이미지를 게시하는 경우 질문을 종료하기 만하면됩니다. – Aleksej
죄송합니다. @Aleksej ... 질문을 업데이트했습니다. – Meen