procedure
Executes a stored procedure with IN / OUT / INOUT parameters.
Each args entry is either:
an Sp.Out or Sp.InOut reference that the caller holds, to be populated after execution, OR
an Sp.In wrapper, OR
any other value — automatically wrapped as Sp.In.
After the call returns, OUT and INOUT refs carry the typed value produced by the procedure.