Search Results mtl_categories_vl




Overview

MTL_CATEGORIES_VL is a multilingual (ML) view owned by the APPS schema in Oracle E-Business Suite, belonging to the Inventory (INV) product family. As its documented description states, it is a "Categories multilingual view." It presents the complete definition of item categories—the values that populate the key flexfield segments used to classify inventory items—while transparently resolving the language-specific description from the underlying translation table.

Because Oracle EBS stores translatable attributes such as the category DESCRIPTION in a separate translation table (the _TL table) rather than in the base entity table, application code and reports must join the base and translation tables to retrieve display-ready category data. The _VL view encapsulates this join, exposing a single, language-filtered result set. The view resolves the active language at runtime through USERENV('LANG'), so each session automatically receives the description in its own language. This makes the view the preferred access point for reporting, integrations, and extensions that need to read category definitions without hard-coding a language predicate. In ETRM 12.2.2 the object is documented as VALID, and it is exposed as an APPS synonym alongside its base objects.

Underlying Base Objects

The view is defined over two documented base objects, both exposed as APPS synonyms:

  • MTL_CATEGORIES_B — the base table holding the non-translatable attributes of a category, including its identifier, structure, segment values, status flags, and audit columns.
  • MTL_CATEGORIES_TL — the translation table holding the language-specific DESCRIPTION.

The view aliases the base table as B and the translation table as T. The join is performed on B.CATEGORY_ID = T.CATEGORY_ID, and the translation row is restricted by T.LANGUAGE = USERENV('LANG'). Nearly all columns are drawn from B; only DESCRIPTION is sourced from T. The view additionally projects B.ROWID as ROW_ID. Because a given category has one translation row per installed language, the language predicate ensures exactly one description row is returned per category for the current session language.

Key Columns

Common Use Cases and Queries

Typical scenarios include retrieving category descriptions for item reports, validating category existence in inbound interfaces, and populating LOVs in custom forms. Because the view already filters by language, queries can read all rows without any additional WHERE restriction on language.

  • List enabled categories:
    SELECT category_id, structure_id, segment1, description
    FROM   mtl_categories_vl
    WHERE  enabled_flag = 'Y';
  • Find a category by name:
    SELECT category_id, description
    FROM   mtl_categories_vl
    WHERE  segment1 = :segment_value
    AND    structure_id = :structure_id;
  • Obtain the description for a known category_id, typically when displaying item classifications:
    SELECT description
    FROM   mtl_categories_vl
    WHERE  category_id = :category_id;

In each case the view provides the language-appropriate DESCRIPTION alongside the category's segment values and status, eliminating the need to join the base and translation tables directly.