50 PLW-05000 to PLW-07206

PLW-05000: mismatch in NOCOPY qualification between specification and body
Cause: The indicated parameter was declared with the NOCOPY hint in the subprogram specification but not in the body, or it was declared with the NOCOPY hint in the body but not in the specification.
Action: Ensure that the specification and the body agree in their use of NOCOPY. If this mismatch is not corrected, the program will obey the declaration given in the specification, ignoring that in the body.
PLW-05001: previous use of 'string' (at line string) conflicts with this use
Cause: While looking for prior declarations of a variable, constant, or label, the compiler found another declaration with the same name in the same scope. Or, the headers of subprogram in a package specification and body were not identical.
Action: Check the spelling of the variable, constant, or label name. Also check the names of all parameters and exceptions declared in the same scope. Then, remove or rename the object with the duplicate name. Or, change the headers of the packaged subprogram in the package specification or body so that they are identical.
PLW-05003: same actual parameter(string and string) at IN and NOCOPY may have side effects
Cause: The indicated parameter was declared with the NOCOPY hint in the subprogram specification but not in the body, or it was declared with the NOCOPY hint in the body but not in the specification.
Action: Ensure that the specification and the body agree in their use of NOCOPY. If this mismatch is not corrected, the program will obey the declaration given in the specification, ignoring that in the body.
PLW-05004: identifier string is also declared in STANDARD or is a SQL builtin
Cause: The indicated identifier was also either: o) declared in package STANDARD, or o) a SQL builtin function, or o) a pseudo-column. This situation can result in name resolution issues since the STANDARD/builtin declaration will be chosen over the local declaration in SQL statements; however the local declaration will be chosen over the STANDARD/builtin declaration outside SQL scope. (See the documentation on PL/SQL name resolution.)
Action: Either: o) rename the given identifier, o) qualify any references to the identifier with the containing scope's name, or o) make sure the intended resolution occurs if using the identifier in SQL scope.
PLW-05005: function string returns without value at line string
Cause: The function exited without a return value. Return statements are required for all PL/SQL functions.
Action: Inspect the function source code for exit points, and place a return at each point so that no runtime error will be generated when the function exits.
PLW-05006: shadow type generation resulted in warning: string
Cause: Compilation of a table function causes the creation of internally- generated types. A problem occurred during creation of these types which was not severe enough to prevent the creation of the types, but which may impact the usage of the table function. See the accompanying error message for more information.
Action: Fix the issue reported in the accompanying error message.
PLW-05007: first parameter to pragma INLINE must be an identifier
Cause: The first parameter to the pragma INLINE must be an identifier denoting a procedure or function.
Action: Use a procedure or function name
PLW-05008: illegal number of arguments for pragma string
Cause: The number of arguments (actual parameters) passed to the named pragma (compiler directive) is incorrect. A required argument was omitted from the argument list, or the pragma syntax is faulty (for example, a comma might be missing between two parameters).
Action: Supply the missing argument or correct the faulty syntax.
PLW-05009: pragma INLINE may not appear in a declaration list
Cause: Pragma INLINE applies only to the following statement, and can not appear immediately prior to a declaration
Action: Remove the pragma.
PLW-05010: duplicate pragma INLINE on procedure 'string'
Cause: Pragma INLINE was applied twice to the same procedure in the same statement. The procedure will be inlined only if all duplicates specify a control value of 'YES'
Action: Remove the duplicate pragma.
PLW-05011: pragma INLINE for procedure 'string' does not apply to any calls
Cause: A pragma INLINE was provided, but there was no call to the mentioned procedure in the next statement.
Action: Remove the unnecessary pragma.
PLW-05012: pragma INLINE for procedure 'string' could not be applied
Cause: A pragma INLINE(<name>, 'yes') was used, but the named procedure could not be inlined.
Action: Eliminate the reasons which are blocking the inlining. See the documentation for possible problems. NLS_DO_NOT_TRANSLATE [5400,5401]
PLW-05013: second parameter to pragma INLINE 'string' is not 'YES' or 'NO'
Cause: The second parameter to the pragma INLINE governs whether or not a procedure call can be inlined. The only legal values are 'YES', meaning that the compiler should attempt to inline the call, and 'NO', meaning that the compiler must not inline the call.
Action: Use 'YES' or 'NO' as appropriate.
PLW-05014: Pragma string cannot be specified here
Cause: The pragma was specified in an inappropriate context.
Action: Remove or relocate the misplaced pragma. Check the documentation to determine the correct context for this pragma.
PLW-05015: implementation restriction - too many debug records
Cause: The program is so large that it overflowed a compiler limit on the size of the debug symbol table. The module was compiled with partial debugging information.
Action: Compile the module with PLSQL_DEBUG=FALSE, or split it into multiple modules
PLW-05016: INTO clause should not be specified here
Cause: The INTO clause was incorrectly specified on a cursor declaration. It should have been specified on the FETCH statement.
Action: Relocate the misplaced clause.
PLW-05017: prefix of the expression will be ignored
Cause: Generalized invocation with explicit SELF and a dotted name was used to call the type method causing the prefix of the dotted name to be ignored.
Action: Do not use a dotted name to invoked type method in this context.
PLW-06002: Unreachable code
Cause: d by expression evaluation at compile time.
Action: Inspect program logic for possible defects. Disable the warning if much code is made unreachable intentionally and the warning message is more annoying than helpful.
PLW-06003: unknown inquiry directive 'string'
Cause: An unknown inquiry directive was used. The inquiry directive is neither predefined nor user-defined.
Action: Use a predefined inquiry directive or define the inquiry directive.
PLW-06004: inlining of call of procedure 'string' requested
Cause: A pragma INLINE(, 'YES') referring to the named procedure was found. The compiler will, if possible, inline this call.
Action: None
PLW-06005: inlining of call of procedure 'string' was done
Cause: A call to the procedure was inlined.
Action: None
PLW-06006: uncalled procedure "string" is removed.
Cause: Static program analysis determined that the procedure can never be called or executed. Therefore, it has been removed to save time during compilation and space during execution.
Action: Inspect program logic for possible defects. Disable the warning if the procedure is useful but simply not being used right now and the warning message is more annoying than helpful.
PLW-06007: procedure "string" is removed because optimization removed calls
Cause: Static program analysis determined that the procedure can never be called or executed. Therefore, it has been removed to save time during compilation and space during execution.
Action: Inspect program logic for possible defects. Disable the warning if the procedure is useful but simply not being used right now and the warning message is more annoying than helpful.
PLW-06008: call of procedure 'string' will not be inlined
Cause: A pragma INLINE(, 'NO') referring to the named procedure was found. The compiler is prevented from inlining this call.
Action: None
PLW-06009: procedure "string" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR
Cause: The OTHERS handler can exit without executing some form of RAISE or or a call to the standard procedure RAISE_APPLICATION_ERROR.
Action: Good programming practices suggest that OTHERS handlers must always pass an exception upward. Inspect the program logic to determine if the handler code needs revision.
PLW-06010: keyword "string" used as a defined name
Cause: A PL/SQL or SQL keyword was used as defined name. Although legal, this is not recommended.
Action: Choose another name for the defined item.
PLW-06011: detailed dependency information discarded due to size limitations
Cause: The compiled unit was so large that the compiler could not store detailed dependency information that could be used to quickly recompile the unit if it was invalidated.
Action: Break up the unit into smaller units.
PLW-06012: SQL statement cannot be inlined. string
Cause: The SQL statement could not be inlined.
Action: None
PLW-06013: deprecated parameter PLSQL_DEBUG forces PLSQL_OPTIMIZE_LEVEL <= 1
Cause: The PLSQL_DEBUG parameter was set to TRUE forcing the optimization level to 1 (or 0 if the user selected 0) regardless of the setting of the PLSQL_OPTIMIZE_LEVEL parameter to a higher level
Action: Do not use the PLSQL_DEBUG parameter; it is deprecated. Instead, set the PLSQL_OPTIMIZE_LEVEL parameter to 1.
PLW-06014: PLSQL_OPTIMIZE_LEVEL <= 1 turns off native code generation
Cause: Native code generation was not done because the optimization was set to 1 or less.
Action: The goal of native code generation is high performance and a low optimization level defeats that purpose. Either request a higher optimization level or remove the request for native code generation. Note that using the deprecated parameter PLSQL_DEBUG also forces the optimization level to 1; do not use this parameter when native code generation is desired.
PLW-06015: parameter PLSQL_DEBUG is deprecated; use PLSQL_OPTIMIZE_LEVEL = 1
Cause: The PLSQL_DEBUG parameter was specified.
Action: The parameter PLSQL_DEBUG no longer controls the generation of debugging information by the PL/SQL compiler; debugging information is always generated and no special parameter is needed.
PLW-06016: unit string is too large; native code generation turned off
Cause: Because the program was extremely large, analysis took an excessive amount of time or space to complete causing native compilation to be turned off.
Action: The goal of native code generation is high performance and the compiler does extensive analysis of the program. If possible, reduce the size of the largest procedure, or split the program unit into multiple units.
PLW-07202: bind type would result in conversion away from column type
Cause: The column type and the bind type do not exactly match. This will result in the column being converted to the type of the bind variable. This type conversion may prevent the SQL optimizer from using any index the column participates in. This may adversely affect the execution performance of this statement.
Action: To make use of any index for this column, make sure the bind type is the same type as the column type.
PLW-07203: parameter 'string' may benefit from use of the NOCOPY compiler hint
Cause: The mode of the specified parameter was IN OUT or OUT. Use of the NOCOPY compiler hint may speed up calls to this subprogram.
Action: Change the mode of the parameter to explicitly use the NOCOPY compiler hint. For example, if your subprogram declaration is: PROCEDURE proc(p1 IN OUT CLOB); you can change it to: PROCEDURE proc(p1 IN OUT NOCOPY clob); to get the benefit of the NOCOPY hint. For member procedures or functions in object types, you may have to explicitly declare the SELF parameter as illustrated in the following: MEMBER PROCEDURE proc(SELF IN OUT NOCOPY MY_TYPE);
PLW-07204: conversion away from column type may result in sub-optimal query plan
Cause: The column type and the bind type do not exactly match. This may result in the column being converted to the type of the bind variable. This type conversion may prevent the SQL optimizer from using any index the column participates in. This may adversely affect the execution performance of this statement.
Action: To make use of any index for this column, make sure the bind type is the same type as the column type.
PLW-07205: SIMPLE_INTEGER is mixed with BINARY_INTEGER or PLS_INTEGER
Cause: Using SIMPLE_INTEGER and BINARY_INTEGER or PLS_INTEGER arguments in the same arithmetic expression may inhibit certain optimizations.
Action: Try using SIMPLE_INTEGER values only if the expression is computed on a performance critical path.
PLW-07206: analysis suggests that the assignment to 'string' may be unnecessary
Cause: This assignment may be unnecessary; the PL/SQL optimizer could not find any further use of the variable which was being set. If the assignment was being done for some side-effect such as raising a specific exception, the compiler may not have been able to understand the side-effect and this warning may be inappropriate.
Action: If the assignment sets a variable whose value will not be used again and there are no side-effects (exceptions or calls) to consider, remove the assignment for better performance. If the assignment was in place to raise a specific known exception, replace the assignment with a RAISE statement.