INPUT is not part of the ISO/IEC SQL standard, but several commercial databases (notably Sybase Adaptive Server Enterprise, SAP IQ, Informix, and Teradata) accept the keyword when you declare parameters inside CREATE PROCEDURE or CREATE FUNCTION statements. When a parameter is declared with INPUT, the called routine can read the value passed by the caller but cannot assign a new value back to the caller. In practice, INPUT behaves the same as the more common IN keyword that appears in MySQL, Oracle, and the ANSI specification, but it exists for historical compatibility in the listed platforms.Some tooling environments also overload INPUT for other purposes. For example, Oracle SQL*Plus uses an INPUT command that lets you add lines to the SQL buffer interactively, and the SQL Server bcp utility uses INPUT to indicate the direction of data movement. Those are command-line features, not DML statements, and are outside strict SQL execution context.Because INPUT is non-standard, code that relies on it is portable only across systems that explicitly document support for the keyword. If you need vendor-agnostic scripts, prefer IN instead.
param_name
(identifier) - Name of the parameter declared as input only.data_type
(data type) - Any valid SQL data type supported by the dialect.INPUT
(keyword) - Specifies the parameter is inbound only.IN, OUT, INOUT, OUTPUT, CREATE PROCEDURE, PARAMETERS
Sybase ASE 12.0 (circa 1998)
Both mark a parameter as read-only, but only IN is defined by the SQL standard. INPUT exists mainly in Sybase, Informix, Teradata, and similar platforms.
No. INPUT parameters are read-only. To pass data back to the caller you must declare a separate OUT, INOUT, or OUTPUT parameter (depending on the dialect).
No. Those databases follow the standard IN/OUT/INOUT syntax. Using INPUT produces a syntax error.
Change the declaration from INPUT to IN, ensure the routine does not attempt to modify the parameter, and test the procedure in each target database.