TYPRUN=SCAN checks JCL syntax without executing the job. TYPRUN=HOLD also checks syntax but holds the job in input queue if error-free, or issues JCL error if syntax errors exist. Neither option actually holds a job with errors - SCAN just reports, HOLD only holds if syntax is valid.