---
title: "SQL-077: Retrieve policy location collection"
summary: "Retrieve policy location collection"
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Core
reference_type: package
---

# SQL-077: Retrieve policy location collection

Retrieve policy location collection in the context of `clsPolicyLocationCollection`.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-077 |
| **Operation type** | Read |
| **Execution method** | IDataRequest.SQLStatement (CommandType.Text) |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | Text |
| **Business object** | `clsPolicyLocationCollection` |
| **Criteria property** | `RetrieveSQL` |
| **Lifecycle method** | `BeforeRetrieve / AfterRetrieve` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:PolicyNumber` | Input | bound from `MyCriteria.PolicyNumber` | - | Bound in `clsPolicyLocationCollection.BeforeRetrieve` (line 182) |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [LOCATION](../database-tables.md#location) | SELECT | See sample SQL |

## Sample SQL

```sql
SELECT
  L.LOC_SEQ_NUM as LocationSequenceNumber,
  L.POLICY_NUM as PolicyNumber,
  L.BUS_SEQ_NUM as BusinessSequenceNumber,
  L.PARENT_LOC_SEQ_NUM as ParentLocationSequenceNumber,
  L.LOC_EFF_DATE as EffectiveDate,
  L.LOC_EXP_DATE as ExpirationDate,
  L.LOCATION_CODE as LocationCode,
  L.LOCATION_NAME as Name,
  L.LOC_ADDR1 as AddressLine1,
  L.LOC_ADDR2 as AddressLine2,
  L.LOC_CITY as City,
  L.LOC_COUNTRY as CountryCode,
  L.LOC_COUNTY as CountyCode,
  L.LOC_PHONE as PhoneNumber,
  L.LOC_PHONE_EXT as PhoneNumberExtension,
  L.LOC_FAX as Fax,
  L.LOC_STATE as StateCode,
  L.LOC_ZIP as ZipCode,
  L.LOC_ZIP4 as ZipCodeExtension,
  L.MAIL_ADDR_FLAG as MailFlag,
  L.CREATE_USER as CreateUser,
  L.CREATE_DATE as CreateDate,
  L.UPDATE_USER as UpdateUser,
  L.UPDATE_DATE as UpdateDate,
  L.EMAIL_ADDR as Email,
  L.EMPLOYEE_COUNT as EmployeeCount,
  L.LOC_ADDR3 as AddressLine3,
  L.PRIMARY_LOCATION_FLAG as PrimaryLocationFlag,
  L.CELL_PHONE as CellPhoneNumber
FROM
  LOCATION L
WHERE
  1 = 1
  AND L.POLICY_NUM = :PolicyNumber
  AND L.LOCATION_CODE IN ('POL','AUD','BUS')
  AND L.LOC_EXP_DATE IS NULL
ORDER BY
  CASE
    WHEN L.LOCATION_CODE = 'POL' THEN '1'
    WHEN L.LOCATION_CODE = 'AUD' THEN '2'
    WHEN L.LOCATION_CODE = 'BUS' AND L.PRIMARY_LOCATION_FLAG = 'Y' THEN '3'
    ELSE '4'
  END
-- Alternate runtime branch
SELECT
  L.LOC_SEQ_NUM as LocationSequenceNumber,
  L.POLICY_NUM as PolicyNumber,
  L.BUS_SEQ_NUM as BusinessSequenceNumber,
  L.PARENT_LOC_SEQ_NUM as ParentLocationSequenceNumber,
  L.LOC_EFF_DATE as EffectiveDate,
  L.LOC_EXP_DATE as ExpirationDate,
  L.LOCATION_CODE as LocationCode,
  L.LOCATION_NAME as Name,
  L.LOC_ADDR1 as AddressLine1,
  L.LOC_ADDR2 as AddressLine2,
  L.LOC_CITY as City,
  L.LOC_COUNTRY as CountryCode,
  L.LOC_COUNTY as CountyCode,
  L.LOC_PHONE as PhoneNumber,
  L.LOC_PHONE_EXT as PhoneNumberExtension,
  L.LOC_FAX as Fax,
  L.LOC_STATE as StateCode,
  L.LOC_ZIP as ZipCode,
  L.LOC_ZIP4 as ZipCodeExtension,
  L.MAIL_ADDR_FLAG as MailFlag,
  L.CREATE_USER as CreateUser,
  L.CREATE_DATE as CreateDate,
  L.UPDATE_USER as UpdateUser,
  L.UPDATE_DATE as UpdateDate,
  L.EMAIL_ADDR as Email,
  L.EMPLOYEE_COUNT as EmployeeCount,
  L.LOC_ADDR3 as AddressLine3,
  L.PRIMARY_LOCATION_FLAG as PrimaryLocationFlag,
  L.CELL_PHONE as CellPhoneNumber
FROM
  LOCATION L
WHERE
  1 = 1
  AND L.POLICY_NUM = :PolicyNumber
  AND L.LOCATION_CODE IN ('POL','AUD','BUS','PAY')
  AND L.LOC_EXP_DATE IS NULL
ORDER BY
  CASE
    WHEN L.LOCATION_CODE = 'AUD' THEN '1'
    WHEN L.LOCATION_CODE = 'PAY' THEN '2'
    WHEN L.LOCATION_CODE = 'POL' THEN '3'
    WHEN L.LOCATION_CODE = 'BUS' AND L.PRIMARY_LOCATION_FLAG = 'Y' THEN '4'
    ELSE '5'
  END
```

## Operations and processes
- [Filter policy locations for a view](../operations/filter-policy-locations-for-a-view.md)

## Business rules
- [BR-017: A location is active as of a date](../business-rules.md#br-017-a-location-is-active-as-of-a-date)
- [BR-018: Summary locations are active locations of type Business](../business-rules.md#br-018-summary-locations-are-active-locations-of-type-business)
- [BR-019: Only location types flagged PolicyLocationFlag = "Y" are](../business-rules.md#br-019-only-location-types-flagged-policylocationflag-y-are)

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `Business\SAIF.Business.Policy.Core\clsPolicyLocationCollection.vb`
