---
title: "SQL-009: Insert menu page"
summary: Inserts a new menu page record into MENU_PAGE (StringBuilder-assembled SQL).
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Menu
reference_type: package
---

# SQL-009: Insert menu page

Inserts a new menu page record into the `MENU_PAGE` table. The SQL is assembled via `StringBuilder` and includes 18 bound parameters covering all toolbar-button flags and tooltips. The primary key (`MenuPageSeqNum`) is obtained beforehand via [SQL-003](SQL-003-saif-business-menu.md). `UPDATE_DATE` is set to `SYSDATE`.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-009 |
| **Operation type** | Create |
| **Execution method** | Inline (StringBuilder) |
| **Database** | Oracle |
| **Schema** | `[unqualified]**` |
| **Command type** | Text |
| **Business object** | `clsMenuPage` |
| **Criteria property** | `InsertSQL` |
| **Lifecycle method** | `BeforeInsert` / `AfterInsert` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:MenuPageSeqNum` | Input | Decimal** | N/A | Primary key bound from `MenuPageSeqNum`. |
| `:PageName` | Input | String** | 100 | Page display name bound from `PageName`. |
| `:FavoriteName` | Input | String** | 100 | Favorite label bound from `FavoriteName`. |
| `:PageLink` | Input | String** | 1000 | Page URL bound from `PageLink`. |
| `:ApplicationCode` | Input | String** | 5 | Application code bound from `ApplicationCode`. |
| `:SavePreferencesFlag` | Input | String** | 1 | Toolbar flag bound from `IsDisplaySavePreferences.ToY_N_String`. |
| `:PrintFlag` | Input | String** | 1 | Toolbar flag bound from `IsDisplayPrint.ToY_N_String`. |
| `:DownloadFlag` | Input | String** | 1 | Toolbar flag bound from `IsDisplayDownload.ToY_N_String`. |
| `:HelpFlag` | Input | String** | 1 | Toolbar flag bound from `IsDisplayHelp.ToY_N_String`. |
| `:SaveFlag` | Input | String** | 1 | Toolbar flag bound from `IsDisplaySave.ToY_N_String`. |
| `:InsertFlag` | Input | String** | 1 | Toolbar flag bound from `IsDisplayInsert.ToY_N_String`. |
| `:DeleteFlag` | Input | String** | 1 | Toolbar flag bound from `IsDisplayDelete.ToY_N_String`. |
| `:PrintTip` | Input | String** | 1000 | Print tooltip bound from `PrintToolTip`. |
| `:DownloadTip` | Input | String** | 1000 | Download tooltip bound from `DownloadToolTip`. |
| `:SaveTip` | Input | String** | 1000 | Save tooltip bound from `SaveToolTip`. |
| `:InsertTip` | Input | String** | 1000 | Insert tooltip bound from `InsertToolTip`. |
| `:DeleteTip` | Input | String** | 1000 | Delete tooltip bound from `DeleteToolTip`. |
| `:UserId` | Input | String** | 30 | Update user bound from `DataPortalInfo.UserID`. |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [MENU_PAGE](../database-tables.md#menu-page) | INSERT | `MENU_PAGE_SEQ_NUM`, `PAGE_NAME`, `FAVORITE_NAME`, `PAGE_LINK_TXT`, `APPLICATION_CODE`, `SAVE_PREFERENCES_FLAG`, `PRINT_FLAG`, `DOWNLOAD_FLAG`, `HELP_FLAG`, `SAVE_FLAG`, `INSERT_FLAG`, `DELETE_FLAG`, `PRINT_TIP_TXT`, `DOWNLOAD_TIP_TXT`, `SAVE_TOOLTIP_TXT`, `INSERT_TOOLTIP_TXT`, `DELETE_TOOLTIP_TXT`, `UPDATE_DATE`, `UPDATE_USER` |

## Sample SQL

```sql
INSERT INTO MENU_PAGE (
    MENU_PAGE_SEQ_NUM, PAGE_NAME, FAVORITE_NAME, PAGE_LINK_TXT,
    APPLICATION_CODE, SAVE_PREFERENCES_FLAG, PRINT_FLAG, DOWNLOAD_FLAG,
    HELP_FLAG, SAVE_FLAG, INSERT_FLAG, DELETE_FLAG,
    PRINT_TIP_TXT, DOWNLOAD_TIP_TXT, SAVE_TOOLTIP_TXT,
    INSERT_TOOLTIP_TXT, DELETE_TOOLTIP_TXT, UPDATE_DATE, UPDATE_USER
) VALUES (
    :MenuPageSeqNum, :PageName, :FavoriteName, :PageLink,
    :ApplicationCode, :SavePreferencesFlag, :PrintFlag, :DownloadFlag,
    :HelpFlag, :SaveFlag, :InsertFlag, :DeleteFlag,
    :PrintTip, :DownloadTip, :SaveTip,
    :InsertTip, :DeleteTip, SYSDATE, :UserId
)
```

## Operations and processes
- [Menu tree construction](../operations/menu-tree-construction.md)


## Business rules
- [BR-MNU-02: DML row-count enforcement](../business-rules.md#br-mnu-02-dml-row-count-enforcement)


> **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.Menu\clsMenuPage.vb`
