작성일자 : 2023-11-30
Ver 0.1.1
0. Intro
Salesforce Object의 데이터에 대해서 쿼리를 하는 SOQL에서는 RDB의 '*'(Asterisk) 기능을 지원하지 않는다.
이에 Inspect에서 Object의 모든 필드의 값을 조회하는 방법은 2가지가 있다.
1. FIELDS(ALL)
2. 존재하는 모든 필드 작성 (short cut : Window : ctrl + spacebar / Mac : ctrl + cmd + spacebar)
# 1. FIELDS(ALL) 사용
SELECT FIELDS(ALL)
FROM Account
LIMIT 200
# 2. 존재하는 필드 모두 작성 (short cut : Window : ctrl + spacebar / Mac : ctrl + cmd + spacebar)
SELCT ID, CreatedDate, Name, ....
FROM Account
위 두가지 방법의 특징 및 방법에 대해서 정리해보도록 하겠다.
1. FIELDS(ALL)
첫번째 방법인 FIELDS(ALL)을 사용하면 '*'를 대체할만한 기능이라고 할 수 있지만, 제한적인 부분이 있다.
모든 레코드에 대해서 조회할 수가 없다는 것이다. FIELDS(ALL)를 사용하려면 LIMIT 옵션을 지정해주어야하는데 최대 200개까지만 조회가 가능하다.
LIMIT 옵션을 지정해주지 않으면 아래와 같이 LIMIT을 지정해달라는 에러가 발생한다.
이에 FIELDS(ALL) 기능은 모든 레코드에 대한 조회때는 사용하기 어려울것 같고, 대략적으로 Object의 데이터가 어떻게 들어가있는지 파악하고자 할 때 사용할 수 있을 것 같다.
2. 존재하는 모든 필드 작성 (short cut : Window : ctrl + spacebar / Mac : ctrl + cmd + spacebar)
두번째 방법은 존재하는 모든 필드를 작성하는 것이다.
Inspector에서 FROM 절에 Object 명을 적고 SELECT 절로 이동하면 아래에 Object에 존재하는 필드들이 나열된다.
근데 한두개면 작성을 하겠지만, 육안으로봐도 작성하기에는 필드명들이 많다.
이럴때는 단축키를 이용해 Object에 존재하는 모든 필드들을 불러올 수 있는데, Window OS의 경우 'ctrl + spacebar', Mac OS의 경우 'ctrl + cmd + spacebar' 를 누르면 된다.
단축키를 누를 경우 SELECT 절의 가장 마지막 컬럼 뒤에도 ','가 작성되기 때문에 그대로 조회를 하면 에러가 발생하니 조회를 하기전에 맨 뒤의 ','는 제거를 해줘야한다.
이렇게 모든 필드를 조회하는 경우는 FIELDS(ALL)의 LIMIT 처럼 제한이 없이때문에 Object에 존재하는 모든 컬럼 및 레코드를 조회할 수 있다. RDB의 *와 동일한 기능을 하게된 셈이다.
물론 LIMIT은 아무때나 사용할 수 있어 모든 필드로 모든 레코드를 조회할때 데이터가 너무 많다면 LIMIT으로 조회하고자 하는 행 개수를 제한 시킬수 있다. 최대값은 동일하게 200이다.
단축키를 통한 모든 데이터 조회는 실제 업무 중에도 정말 많이 사용하는 기능이다.
FIELDS(ALL)은 데이터의 구조 정도만 볼 수 있는 정도라 Object 분석의 초기단계에서만 사용할 수 있을 것 같지만,
단축키를 통한 모든 데이터 조회 역시 LIMIT 기능이 유효하고 FIELDS(ALL)의 특징을 모두 커버하고 있다.
그리고 쿼리 작성의 자유도가 훨씬 높아 위 단축어 사용을 적극 권장하는 편이다.