DELETE FROM 문은 검색 조건에 기초하여 외부 데이터베이스의 테이블에서 행을 삭제합니다.
WHERE 절 표현식이 TRUE로 평가하는 모든 행이 TableReference로 식별된 테이블에서 삭제됩니다.
각 행이 조사되고 변수는 현재 행의 지점으로 설정됩니다. 일반적으로 WHERE 절 표현식은 이 변수를 사용하여 열 값에 액세스하므로 컨텐츠에 따라 행이 보유되거나 삭제됩니다. 변수는 CorrelationName으로 참조되거나 AS절이 없을 경우 TableName으로 참조됩니다.
스키마 이름이 지정되지 않은 경우 브로커 데이터베이스 사용자에 대한 디폴트 스키마가 사용됩니다.
데이터 소스 이름을 지정하지 않은 경우 노드의 데이터 소스 속성에서 지정한 데이터베이스가 사용됩니다.
WHERE 절 표현식은 임의 결합으로 브로커의 연산자와 기능 중 하나를 사용할 수 있습니다. 표현식은 테이블의 열, 메시지 필드 및 선언된 변수나 상수를 나타낼 수 있습니다.
그러나 브로커는 표현식을 조사하고 데이터베이스에서 전체 표현식을 평가할 수 있는지 여부를 결정하여 WHERE 절 표현식을 처리합니다. 전체 표현식을 평가할 수 있는 경우, 데이터베이스에 제공됩니다. 데이터베이스에서 평가할 수 있으려면, 데이터베이스에서 지원하는 함수와 연산자만을 사용해야 합니다.
그러나 WHERE 절은 SELECT를 포함하여 선언된 메시지 필드, 상관 이름 및 기타 선언된 변수나 범위 안의 상수를 나타낼 수 있습니다.
삭제 조작 중 오류가 발생할 수 있습니다. 예를 들면, 데이터베이스가 작동할 수 없습니다. 이러한 경우 예외가 발생합니다(노드에서 throw exception on database error 등록 정보를 FALSE로 설정한 경우 제외). 이 예외는 적절한 SQL 코드, 상태, 고유 오류 및 오류 텍스트 값을 설정하고 오류 핸들러로 처리할 수 있습니다(DECLARE HANDLER 문 참조).
데이터베이스 오류 처리에 대한 자세한 정보는 데이터베이스 상태 캡처를 참조하십시오.
DELETE FROM Database.SHAREHOLDINGS AS S WHERE S.ACCOUNTNO = InputBody.AccountNumber;
그러면 ACCOUNTNO 열(테이블 내)의 값이 메시지의 AccountNumber 필드에 있는 값과 동일한 경우 SHAREHOLDINGS 테이블에서 모든 행이 제거됩니다. 테이블에서 0개, 1개 또는 그 이상의 행이 삭제될 수 있습니다.
-- 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 -- Delete rows from the table DELETE FROM Database.{Source}.{Schema}.{Table} As R WHERE R.Name = 'Joe';