Oracle UTL_LMS
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose Retrieves and formats error messages in different languages
AUTHID DEFINER
Dependencies
DBMS_GSM_DBADMIN DBMS_UNDO_ADV ORA12C_STIG_VERIFY_FUNCTION
DBMS_GSM_POOLADMIN DBMS_VECTOR_CHAIN ORA12C_STRONG_VERIFY_FUNCTION
DBMS_HYBRID_VECTOR DBMS_WRR_REPORT ORA12C_VERIFY_FUNCTION
DBMS_MACUTL DRVXTAB ORA_COMPLEXITY_CHECK
DBMS_REPORT KUPM$MCP UTL_LMS_LIB
DBMS_SERVER_ALERT    
Documented Yes
First Available 10.1
Security Model Owned by SYS with EXECUTE granted to PUBLIC and DVSYS
Source {$ORACLE_HOME}/rdbms/admin/utllms.sql
Special Characters
Character Description
'%s' Substitute the next string argument
'%d' Substitute the next integer argument
'%%' Represents the special character %
Subprograms
 
FORMAT_MESSAGE
Formats a retrieved error message utl_lms.format_message(
format IN VARCHAR2 CHARACTER SET ANY_CS,
args   IN ...)
RETURN VARCHAR2 CHARACTER SET format%CHARSET;
set serveroutput on

DECLARE
 s VARCHAR2(32767);
 i PLS_INTEGER;
BEGIN
  i := utl_lms.get_message(26052,'rdbms','ora','french', s);

  dbms_output.put_line('before format, message is: ' || s);

  dbms_output.put_line('formatted message is: '||
  utl_lms.format_message(s, 96, 'my_string'));
END;
/
 
GET_MESSAGE
Retrieves an error message based on error number, product, facility, language, and message specified

Note: While this function's DDL does not define the LANGUAGE parameter as DEFAULT NULL it does, in fact, accept NULL and when NULL is explicitly passed to the parameter returns the message based on the database's NLS settings.
utl_lms.get_message(
errnum   IN  PLS_INTEGER,
product  IN  VARCHAR2,
facility IN  VARCHAR2,
language IN  VARCHAR2,
message  OUT NOCOPY VARCHAR2CHARCTER SET ANY_CS)
RETURN PLS_INTEGER;
set serveroutput on

DECLARE
 s VARCHAR2(200);
 i PLS_INTEGER;
BEGIN
  i := utl_lms.get_message(601, 'rdbms', 'oci', 'English', s);
  dbms_output.put_line('English: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Spanish', s);
  dbms_output.put_line('Spanish: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Italian', s);
  dbms_output.put_line('Italian: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Dutch', s);
  dbms_output.put_line('Dutch: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'French', s);
  dbms_output.put_line('French: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'German', s);
  dbms_output.put_line('German: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Danish', s);
  dbms_output.put_line('Danish: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Norwegian', s);
  dbms_output.put_line('Norwegian: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Polish', s);
  dbms_output.put_line('Polish: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Swedish', s);
  dbms_output.put_line('Swedish: OCI--00601 is: ' || s);

  i := utl_lms.get_message(601, 'rdbms', 'oci', 'Turkish', s);
  dbms_output.put_line('Turkish: OCI--00601 is: ' || s);
END;
/
English: OCI--00601 is: cleanup lock conflict
Spanish: OCI--00601 is: conflicto en la eliminaci≤n de bloqueos
Italian: OCI--00601 is: conflitto di lock cleanup
Dutch: OCI--00601 is: Conflict bij het opruimen van vergrendeling.
French: OCI--00601 is: Nettoyage du conflit de verrou interne
German: OCI--00601 is: Sperrkonflikt beim Recovery
Danish: OCI--00601 is: oprydning af lσsekonflikt
Norwegian: OCI--00601 is: konflikt ved lσseopprydding
Polish: OCI--00601 is: konflikt blokady czyszczenia
Swedish: OCI--00601 is: lσskonflikt vid rensning
Turkish: OCI--00601 is: temizleme sirasinda kilit τakismasi

PL/SQL procedure successfully completed.

Related Topics
Built-in Functions
Built-in Packages
Exception Handling
UTL_GDK
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved