PL/SQL uses IN, OUT, IN OUT keywords to define what can happen to a passed parameter.
IN specifies that the parameter is read only and the value cannot be changed by the procedure.
OUT specifies the parameter is write only and a procedure can assign a value to it, but not reference the value.
IN OUT specifies the parameter is available for reference and modification.
PROCEDURE procedureName(x IN INT, strVar IN VARCHAR2, ans OUT VARCHAR2)
...
...
END procedureName;
procedureName(firstvar, secondvar, thirdvar);
The variables passed in the above example need to be typed as they are defined in the procedure parameter section.