25.4. 데이터를 업데이트하는 SQL 문의 매개 변수 자리 표시자 및 값 정보
흐름 중간에 있거나 간단한 통합을 완료하는 데이터베이스 연결은 데이터를 업데이트하는 SQL 문을 실행할 수 있습니다. 통합에 데이터베이스 연결을 추가하면 실행할 SQL 문에서 자리 표시자 매개 변수를 지정할 수 있습니다. 실행되는 동안 입력 매개 변수 값이 컬렉션에 있을 때 연결은 배치 업데이트를 수행할 수 있습니다.
SQL 문에서 매개변수 지정
통합을 만들거나 편집하고 데이터베이스를 업데이트하는 연결을 추가하면 런타임 시 연결이 실행되는 SQL 문에서 자리 표시자 매개 변수를 지정하거나 런타임 시 실행할 저장 프로시저에 자리 표시자 매개 변수가 있을 수 있습니다. 예를 들면 다음과 같습니다.
INSERT INTO TODO(task, completed) VALUES(:#param_1, :#param_2) DELETE FROM TODO WHERE task LIKE :#param_3
이러한 자리 표시자의 값을 지정하려면 데이터베이스 연결 전에 흐름에 데이터 매핑 단계를 추가합니다. 데이터 매핑 단계에서 적절한 소스 데이터 필드를 대상 데이터 필드에 매핑합니다. 예를 들어 소스 데이터를 :#param_1
,:#param_2
및 :#param_3
대상 필드에 매핑합니다. 데이터 매퍼 단계 추가를 참조하십시오.
매개변수 값 컬렉션을 사용한 배치 업데이트
런타임 시 데이터베이스 연결이 데이터를 삽입, 삭제 또는 업데이트하는 SQL 문을 실행하는 경우 실행 중인 SQL 문이 하나 이상의 자리 표시자 매개 변수를 지정하는 경우가 많습니다(예: :#task
). 이 경우 연결에 대한 입력은 단일 매개변수 세트 또는 매개 변수 세트 컬렉션일 수 있습니다. 여기서 세트의 각 요소는 해당 자리 표시자 매개 변수에 대한 값을 정의합니다.
데이터베이스 연결에 대한 입력은 흐름의 이전 연결(예: HTTP 요청) 또는 API 공급자 통합을 위해 REST API 서비스로 전송된 요청에서 가져옵니다. 입력이 컬렉션이면 연결은 일괄 모드를 사용하여 테이블을 업데이트합니다. 예를 들어 다음 SQL 문을 고려하십시오.
insert into todo (task) values (:#task)
입력 컬렉션에 3개의 값이 포함된 경우 연결에서 각 값에 대해 하나씩 세 개의 레코드를 삽입합니다. 이제 두 개의 자리 표시자 매개 변수가 있는 SQL 문을 고려하십시오.
insert into todo (task, completed) values (:#task, :#completed)
이 SQL 문을 실행하는 연결에 대한 입력에서 데이터 셰이프 사양은 단일 요소를 지정할 수 있습니다.In the input to the connection that executes this SQL statement, a data shape specification could specify a single element, for example:
{"task": "write some docs", "completed": 0}
또는 컬렉션을 지정할 수 있습니다. 예를 들면 다음과 같습니다.
[{"task": "write doc", "completed": 1}, {"task": "publish doc", "completed": 0}]
컬렉션을 입력으로 사용하면 연결은 각 매개 변수 값 집합에 대해 한 번 삽입 작업을 실행합니다. 이 예제에서 연결은 각 매개 변수 값 집합에 하나씩 두 개의 레코드를 테이블에 추가합니다.