Informix Error -4475: "name" cannot be used as both a function (or report) name and an identifier name.
Cause and resolution
"name" cannot be used as both a function (or report) name and an identifier name.
The name shown has been defined at least two ways. Names at the global or module level must be unique. Locate all the definitions and declarations of this name and change all but one of them. Only NewEra returns this error.
-4475 "name" may not be used as both a function (or report) name and a variable name.
The name shown has been defined at least two ways. Names at the global or module level (function names, report names, and names of global or module variables) must be unique. Locate all the definitions of this name and change all but one of them. Error -4475 is issued with this meaning from 4GL at versions after 4.1.
-4475 "name" may not be used as both a function (or report) name and an identifier.
The name shown has been defined at least two ways. Names at the global or module level must be unique. Locate all the definitions and declarations of this name and change all but one of them. Error -4475 is issued with this meaning from 4GL at versions after 4.1.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4475 covers two related variants, per the official guidance: a name is defined at least two ways at the global/module level — NewEra states this generally (function/report name vs. any identifier), while 4GL (versions after 4.1) states it specifically as function/report name vs. variable name. In both cases, global/module-level names must be unique.
- The same name used as both a function/report name and another identifier (typically a variable) at the global or module level, per the official guidance — the direct, only cause.
Solutions / Resolution
- Locate all the definitions/declarations of the name, and change all but one of them, per the official guidance.
Examples
A name reused as both a function and a variable
FUNCTION total()
...
END FUNCTION
DEFINE total DECIMAL
-- -4475: "total" is already used as a function name
Corrected
FUNCTION computeTotal()
...
END FUNCTION
DEFINE total DECIMAL
Diagnostic Checks
- Check every global/module-level name for reuse across function/report names and other identifiers, and rename all but one occurrence.
Related Errors / Related Topics
- -4452 — "The function (or report) name has already been defined." A closely related naming-collision error, about two functions/reports sharing a name rather than a function/report name colliding with a variable name.
A name is used as both a function/report name and another identifier at the global/module level — rename all but one occurrence.