---
title: "SQL-MENU-002: Insert application code"
summary: "Insert an application code row."
status: draft
owner: SAIF documentation team
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# SQL-MENU-002: Insert application code

Insert an application code row.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-MENU-002 |
| **Operation type** | Create |
| **Execution method** | Inline SQL |
| **Database** | Oracle |
| **Schema** | [unqualified]** |
| **Command type** | Text |
| **Business object** | `clsApplicationCode` |
| **Criteria property** | `InsertSQL` |
| **Lifecycle method** | `BeforeInsert` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:Code` | Input | String | 5 | Lookup key. SQL-declared and code-bound. |
| `:CodeDescr` | Input | String | 100 | Code description. SQL-declared, but `BeforeInsert` in `clsApplicationCode.vb` never calls `DataRequest.AddParm` with the `CodeDescr` value, so this bind is never supplied at execution time. |
| `:ApplicationPath` | Input | String | 65 | Application path/description. SQL-declared and code-bound. |
| `:ActiveFlag` | Input | String | 1 | Y/N active flag. SQL-declared and code-bound. |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [BUSONLINE_APPS_CODE](../database-tables.md#busonlineappscode) | INSERT | `CODE`, `CODE_DESCR`, `ACTIVE_CODE` |

## Sample SQL

```sql
INSERT INTO BUSONLINE_APPS_CODE (
  CODE,
  CODE_DESCR,
  ACTIVE_CODE)
VALUES (
  :Code,
  :CodeDescr, :ApplicationPath, :ActiveFlag)
```

## Source-defect note

The `InsertSQL` string in `clsApplicationCode.vb` declares three target columns (`CODE`, `CODE_DESCR`, `ACTIVE_CODE`) but supplies four bind tokens in the `VALUES` clause (`:Code, :CodeDescr, :ApplicationPath, :ActiveFlag`) — one more bind than there are columns to receive them. `BeforeInsert` only calls `AddParm` for `Code`, `ApplicationPath`, and `ActiveFlag`; it never adds a parameter named `CodeDescr`. This target-column/value-count mismatch, combined with the unbound `:CodeDescr` token, is a source-level defect in `clsApplicationCode.vb`, not a documentation gap. The exact runtime outcome (for example, whether execution fails with a missing-bind-variable error or the Oracle provider resolves the extra bind token some other way) is not established by the source and is unknown until this statement is executed and verified against the live database.** Callers of `clsApplicationCode.Save()` for a new row should verify actual runtime behavior before relying on this statement.

## Operations and processes
- [Maintain reference data](../operations/maintain-reference-data.md)

## Business rules
- [BR-MENU-001: Optimistic contention on write](../business-rules.md#br-menu-001-optimistic-contention-on-write)

> **Note:** Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- `SAIF.Business.Menu\clsApplicationCode.vb`
