카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

OBJECT_DELETE

하나 이상의 키가 제거된 입력(즉, 소스) 오브젝트의 내용을 포함하는 오브젝트를 반환합니다.

구문

OBJECT_DELETE( <object>, <key1> [, <key2>, ... ] )
Copy

인자

object

소스 오브젝트입니다.

key1, key2

반환된 오브젝트에서 생략할 키입니다.

사용법 노트

정형 OBJECT 의 경우:

  • 키인 인자의 경우 상수를 지정해야 합니다.

  • 지정된 키가 OBJECT 유형 정의에 포함되지 않는 경우 호출이 실패합니다. 예를 들어, 다음 호출은 OBJECT에 지정된 키 zip_code 가 포함되어 있지 않으므로 실패합니다.

    SELECT OBJECT_DELETE( {'city':'San Mateo','state':'CA'}::OBJECT(city VARCHAR,state VARCHAR), 'zip_code' );
    
    Copy
    093201 (23001): Function OBJECT_DELETE: expected structured object to contain field zip_code but it did not.
    
  • 이 함수는 정형 OBJECT를 반환합니다. OBJECT 유형은 삭제된 키를 제외합니다. 예를 들어, city 키를 제거한다고 가정해 보겠습니다.

    SELECT
      OBJECT_DELETE(
        {'city':'San Mateo','state':'CA'}::OBJECT(city VARCHAR,state VARCHAR),
        'city'
      ) AS new_object,
      SYSTEM$TYPE_OF(new_object);
    
    Copy

    이 함수는 city 키를 포함하지 않는 OBJECT(state VARCHAR) 유형의 OBJECT를 반환합니다.

    +-----------------+--------------------------------------+
    | NEW_OBJECT      | SYSTEM$TYPEOF(NEW_OBJECT)            |
    |-----------------+--------------------------------------|
    | {               | OBJECT(state VARCHAR(16777216))[LOB] |
    |   "state": "CA" |                                      |
    | }               |                                      |
    +-----------------+--------------------------------------+
    
  • 이 함수는 오브젝트에서 모든 키를 제거할 경우 OBJECT() 유형의 빈 정형 OBJECT를 반환합니다.

    SELECT
      OBJECT_DELETE(
        {'state':'CA'}::OBJECT(state VARCHAR),
        'state'
      ) AS new_object,
      SYSTEM$TYPEOF(new_object);
    
    Copy
    +------------+---------------------------+
    | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) |
    |------------+---------------------------|
    | {}         | OBJECT()[LOB]             |
    +------------+---------------------------+
    

    정형 OBJECT의 유형에 키-값 페어가 포함된 경우 해당 페어의 이름과 유형이 유형의 괄호 안에 포함됩니다(예: OBJECT(city VARCHAR)). 빈 정형 OBJECT에는 키-값 페어가 포함되어 있지 않으므로 괄호는 비어 있습니다.

SELECT OBJECT_DELETE(OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3), 'a', 'b');

-------------------------------------------------------------------+
 OBJECT_DELETE(OBJECT_CONSTRUCT('A', 1, 'B', 2, 'C', 3), 'A', 'B') |
-------------------------------------------------------------------+
 {                                                                 |
   "c": 3                                                          |
 }                                                                 |
-------------------------------------------------------------------+
Copy