UPDATE 문은 외부 데이터베이스에 있는 테이블의 선택된 행에서 지정된 열의 값을 변경합니다.
스키마 이름이 지정되지 않은 경우 브로커 데이터베이스 사용자에 대한 디폴트 스키마가 사용됩니다.
데이터 소스 이름을 지정하지 않은 경우 노드의 데이터 소스 속성에서 지정한 데이터베이스가 사용됩니다.
WHERE 절 표현식은 임의 결합으로 브로커의 연산자와 기능 중 하나를 사용할 수 있습니다. 표현식은 테이블의 열, 메시지 필드 및 선언된 변수나 상수를 나타낼 수 있습니다.
그러나 브로커는 표현식을 조사하고 데이터베이스에서 전체 표현식을 평가할 수 있는지 여부를 결정하여 WHERE 절 표현식을 처리합니다. 전체 표현식을 평가할 수 있는 경우, 데이터베이스에 제공됩니다. 데이터베이스에서 평가할 수 있으려면, 데이터베이스에서 지원하는 함수와 연산자만을 사용해야 합니다.
그러나 WHERE 절은 SELECT를 포함하여 선언된 메시지 필드, 상관 이름 및 기타 선언된 변수나 범위 안의 상수를 나타낼 수 있습니다.
갱신 조작 중 오류가 발생할 수 있습니다. 예를 들면, 데이터베이스가 조작될 수 없거나, 표에 새 값을 방해하도록 정의된 제한조건이 있을 수 있습니다. 이러한 경우 예외가 발생합니다(노드에서 throw exception on database error 등록 정보를 FALSE로 설정한 경우 제외). 이 예외는 적절한 SQL 코드, 상태, 고유 오류 및 오류 텍스트 값을 설정하고 오류 핸들러로 처리할 수 있습니다(DECLARE HANDLER 문 참조).
데이터베이스 오류 처리에 대한 자세한 정보는 데이터베이스 상태 캡처를 참조하십시오.
UPDATE Database.StockPrices AS SP SET PRICE = InputBody.Message.StockPrice WHERE SP.COMPANY = InputBody.Message.Company
UPDATE Database.INVENTORY AS INV SET QUANTITY = INV.QUANTITY - InputBody.Message.QuantitySold WHERE INV.ITEMNUMBER = InputBody.Message.ItemNumber
UPDATE Database.table AS T SET column1 = T.column1+1, column2 = T.column2+2;
열 이름("="의 왼쪽)은 단일 ID입니다. 이 이름은 테이블 이름 또는 상관 이름을 사용하여 규정할 수 없습니다. 반대로 표현식에 있는 데이터베이스 열에 대한 참조사항("="의 오른쪽)은 상관 이름을 사용하여 규정해야 합니다.
-- Declare variables to hold the data source, schema and table names -- and set their default values DECLARE Source CHARACTER 'Production'; DECLARE Schema CHARACTER 'db2admin'; DECLARE Table CHARACTER 'DynamicTable1'; -- Code which calculates their actual values comes here -- Update rows in the table UPDATE Database.{Source}.{Schema}.{Table} AS R SET Value = 0;