programing

Oracle에서 조건부로 삽입하는 방법은 무엇입니까?

iphone6s 2023. 10. 9. 22:24
반응형

Oracle에서 조건부로 삽입하는 방법은 무엇입니까?

구문은 다음과 같습니다.

INSERT
WHEN ([Condition]) THEN
INTO [TableName] ([ColumnName])
VALUES ([VALUES])
ELSE
INTO [TableName] ([ColumnName])
VALUES ([VALUES])
SELECT [ColumnName] FROM [TableName];

하지만 다른 테이블에서 가치를 제공하고 싶지는 않습니다.그냥 입력하고 싶어서요.

INSERT 
WHEN EXISTS (SELECT 1 FROM FOO WHERE NAME = 'JOE') 
THEN
INTO BAR (NAME, AGE) 
VALUES ('JOE', 50)

이 경우 예외가 발생합니다. ORA-00928: SELECT 키워드 누락.

다른 테이블에서 주어진 값이 발견되면 삽입을 수행하고 싶습니다.

와 함께 사용select작동합니다. 당신의 쿼리는 문제가 있어서 작동하지 않았습니다.values조건부 삽입 시 키워드를 입력합니다.

INSERT 
WHEN EXISTS (SELECT 1 FROM FOO WHERE NAME = 'JOE') 
THEN
INTO BAR (NAME, AGE) 
SELECT 'JOE', 50 FROM DUAL

그래서 여기서 간접적인 방법을 찾았고 제 질문에 대한 해결책은 다음과 같습니다.

INSERT INTO BAR (NAME, AGE) 
SELECT 'JOE', 50
  FROM DUAL
 WHERE EXISTS (SELECT 1 FROM FOO WHERE NAME = 'JOE')

내가 왜 그를 이용해야 하는지 설명이 안 돼요.SELECT에서 진술.INSERT WHEN

언급URL : https://stackoverflow.com/questions/41849762/how-to-insert-conditionally-in-oracle

반응형