Procedures, functions, and packages in PL/SQL (or similar database languages) include multiple programming constructs: variables and constants for data storage, cursors for querying data row-by-row, and exceptions for error handling. All of these (option D) are valid constructs.