---
title: "SQL-030: Retrieve user type row"
summary: Retrieves a single user type/role row with code-table and prompt joins.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Business.External.Users
reference_type: package
---

# SQL-030: Retrieve user type row

Retrieves a single `EXT_USER_TYPE` row joined to `EXT_USER_TYPE_CODE` and `EXT_USER_TYPE_CODE_PROMPT` for a given user type sequence number.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-030 |
| **Operation type** | Read |
| **Execution method** | Inline SQL |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | Text |
| **Business object** | `clsUserType` |
| **Criteria property** | `RetrieveSQL` |
| **Lifecycle method** | `BeforeRetrieve` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:UserTypeID` | Input | Decimal | N/A | `EXT_USER_TYPE_SEQ_NUM` — primary key. |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [EXT_USER_TYPE](../database-tables.md#ext_user_type) | SELECT | All EXT_USER_TYPE columns |
| [EXT_USER_TYPE_CODE](../database-tables.md#ext_user_type_code) | JOIN | `CODE`, `CUSTOMER_ID_DESCR`, `CUSTOMER_GROUP_ID_DESCR` |
| [EXT_USER_TYPE_CODE_PROMPT](../database-tables.md#ext_user_type_code_prompt) | JOIN | `EXT_USER_TYPE_CODE`, `PROMPT_CODE`, `PROMPT_DESCR` |

## Sample SQL

```sql
SELECT
    EXT_USER_TYPE.EXT_USER_TYPE_SEQ_NUM AS UserTypeID,
    EXT_USER_TYPE.EXT_USER_SEQ_NUM AS UserID,
    EXT_USER_TYPE.EXT_USER_TYPE_CODE AS UserTypeCode,
    CASE WHEN c.customer_id_descr <> c.customer_group_id_descr
         THEN 'Y' ELSE 'N'
    END AS UseCustomerGroupID,
    EXT_USER_TYPE.COMPANY_SEQ_NUM AS CustomerID,
    upper(EXT_USER_TYPE.CUSTOMER_ID) AS SourceSystemID,
    upper(EXT_USER_TYPE.CUSTOMER_GROUP_ID) AS SourceSystemGroupID,
    cd.PROMPT_DESCR AS SourceSystemIDPrompt,
    c.CUSTOMER_ID_DESCR AS SourceSystemIDDescription,
    c.CUSTOMER_GROUP_ID_DESCR AS SourceSystemGroupIDDescription,
    EXT_USER_TYPE.CREDENTIAL_1_ID AS Credential1ID,
    EXT_USER_TYPE.CREDENTIAL_2_ID AS Credential2ID,
    EXT_USER_TYPE.PRIMARY_TYPE_FLAG AS IsPrimaryType,
    EXT_USER_TYPE.ADMIN_USER_FLAG AS IsAdminUser,
    EXT_USER_TYPE.STEWARD_FLAG AS IsSteward,
    EXT_USER_TYPE.CREATE_USER AS CreateUser,
    EXT_USER_TYPE.CREATE_DATE AS CreateDate,
    EXT_USER_TYPE.UPDATE_USER AS UpdateUser,
    EXT_USER_TYPE.UPDATE_DATE AS UpdateDate,
    EXT_USER_TYPE.UPDATE_NUM AS UpdateNum,
    'N' AS HasConflictClaim
FROM EXT_USER_TYPE
JOIN EXT_USER_TYPE_CODE c ON c.Code = EXT_USER_TYPE.EXT_USER_TYPE_CODE
JOIN EXT_USER_TYPE_CODE_PROMPT cd
    ON c.code = cd.EXT_USER_TYPE_CODE AND cd.PROMPT_CODE = 'CUSID'
WHERE EXT_USER_TYPE.EXT_USER_TYPE_SEQ_NUM = :UserTypeID
```

## Operations and processes
- [User type management](../operations/user-type-management.md)

> **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.External.Users\clsUserType.vb`
