{"id":108877,"date":"2026-03-30T14:09:00","date_gmt":"2026-03-30T14:09:00","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=108877"},"modified":"2026-04-03T12:54:59","modified_gmt":"2026-04-03T12:54:59","slug":"from-python-to-esproc-spl-part-1-how-to-set-up-your-data-analysis-environment","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/development\/from-python-to-esproc-spl-part-1-how-to-set-up-your-data-analysis-environment\/","title":{"rendered":"How to set up a data analysis environment in esProc SPL (compared to Python)"},"content":{"rendered":"\n<p><strong>This article is the first in this six-part <a href=\"https:\/\/www.red-gate.com\/simple-talk\/collections\/moving-from-python-to-esproc-spl\/\" target=\"_blank\" rel=\"noreferrer noopener\">&#8220;Moving from Python to esProc SPL&#8221;<\/a> series. You&#8217;ll learn how to set up esProc SPL, install it on different operating systems, configure your development environment, and load your first dataset. You&#8217;ll also write your first SPL script and compare the setup process with Python. By the end of this first article, you&#8217;ll have a fully-functional esProc SPL environment and be ready to look into its capabilities in-depth.<\/strong><\/p>\n\n\n\n<p id=\"h-introduction-data-analysis-has-become-an-important-skill-today-and-python-has-been-the-go-to-language-for-many-analysts-and-data-scientists-with-libraries-like-pandas-and-numpy-python-makes-handling-structured-data-easy-however-as-datasets-grow-larger-and-queries-become-more-complex-performance-issues-arise-this-is-where-esproc-spl-structured-process-language-comes-in-esproc-spl-is-designed-specifically-for-structured-data-analysis-offering-a-simpler-and-more-efficient-approach-to-handling-large-scale-data-operations-unlike-python-which-requires-external-libraries-and-extensive-code-to-manipulate-data-esproc-spl-provides-a-streamlined-sql-like-syntax-that-reduces-complexity-and-improves-performance-this-article-is-the-first-part-of-the-series-data-analysis-from-python-to-esproc-spl-here-you-ll-learn-how-to-set-up-esproc-spl-install-it-on-different-operating-systems-configure-your-development-environment-and-load-your-first-dataset-you-ll-also-write-your-first-spl-script-and-compare-the-setup-process-with-python-by-the-end-of-this-article-you-ll-have-a-fully-functional-esproc-spl-environment-and-be-ready-to-look-into-its-capabilities-in-depth-what-is-esproc-spl-and-why-should-python-users-care-esproc-spl-is-a-data-computing-language-designed-specifically-for-structured-data-processing-unlike-python-which-requires-external-libraries-like-pandas-for-data-manipulation-esproc-spl-is-built-from-the-ground-up-to-handle-structured-data-efficiently-it-combines-the-best-aspects-of-sql-s-data-manipulation-capabilities-with-the-flexibility-of-a-scripting-language-making-it-an-excellent-tool-for-filtering-grouping-and-aggregating-datasets-one-of-the-key-advantages-of-esproc-spl-is-its-simplified-syntax-operations-that-require-multiple-lines-of-pandas-code-can-often-be-accomplished-in-a-single-spl-statement-additionally-its-cellset-structure-optimizes-performance-for-large-datasets-reducing-memory-overhead-and-improving-execution-speed-esproc-spl-allows-users-to-perform-sql-like-operations-directly-on-files-without-requiring-a-database-making-it-a-practical-choice-for-working-with-csv-json-and-excel-data-for-python-users-esproc-spl-is-not-a-replacement-but-a-complementary-tool-that-can-handle-the-heavy-lifting-in-data-transformation-before-passing-results-to-python-for-visualization-or-machine-learning-tasks-it-is-particularly-useful-for-those-who-find-pandas-syntax-complex-or-need-a-more-sql-like-approach-without-the-overhead-of-a-full-database-installing-esproc-spl-a-step-by-step-guide-to-start-using-esproc-spl-you-need-to-install-it-on-your-operating-system-below-are-the-installation-steps-for-windows-macos-and-linux-installing-esproc-spl-on-windows-download-the-installer-visit-the-official-esproc-spl-download-page-and-download-the-windows-installer-run-the-installer-double-click-the-exe-file-and-follow-the-on-screen-instructions-complete-installation-after-installation-launch-esproc-spl-from-the-start-menu-installing-esproc-spl-on-macos-download-the-macos-package-go-to-the-esproc-spl-website-and-download-the-macos-version-install-the-package-open-the-dmg-file-and-drag-esproc-spl-to-the-applications-folder-launch-esproc-spl-open-the-application-from-the-launchpad-or-terminal-installing-esproc-spl-on-linux-download-the-linux-archive-get-the-tar-gz-file-from-the-official-site-extract-the-files-tar-xvzf-esproc-linux-tar-gz-3-run-esproc-spl-cd-esproc-esproc-configuring-your-development-environment-ide-options-the-esproc-ide-comes-with-several-configuration-options-that-allow-you-to-tailor-your-development-experience-for-better-efficiency-adjusting-these-settings-can-improve-readability-performance-and-overall-workflow-before-coding-you-may-want-to-customize-the-ide-to-suit-your-preferences-to-access-the-settings-click-on-tools-in-the-top-menu-and-select-options-to-open-the-configuration-dialog-one-of-the-first-things-you-can-adjust-is-the-editor-s-appearance-choosing-a-monospaced-font-like-consolas-or-source-code-pro-can-improve-code-readability-a-comfortable-font-size-typically-between-12-to-14pt-ensures-your-scripts-remain-clear-and-easy-to-read-you-can-switch-between-a-light-or-dark-theme-depending-on-your-preference-optimizing-memory-allocation-is-necessary-for-performance-if-you-plan-to-work-with-large-datasets-navigate-to-the-performance-tab-in-the-settings-and-increase-the-maximum-memory-allocation-a-good-starting-point-is-50-of-your-system-s-available-ram-which-helps-the-ide-handle-large-scale-computations-smoothly-another-useful-configuration-is-setting-default-file-locations-you-can-specify-where-your-spl-scripts-should-be-saved-and-define-default-directories-for-datasets-ensuring-quick-access-to-frequently-used-files-keyboard-shortcuts-for-faster-workflow-mastering-keyboard-shortcuts-in-esproc-spl-can-significantly-improve-your-productivity-the-following-shortcuts-help-streamline-your-workflow-f5-executes-the-current-script-f9-runs-a-selected-block-of-code-ctrl-space-activates-code-completion-ctrl-comments-or-uncomments-selected-lines-ctrl-s-saves-the-current-script-f1-opens-the-help-documentation-you-can-view-and-customize-additional-shortcuts-by-navigating-to-the-keyboard-section-in-the-options-dialog-configuring-the-ide-and-familiarizing-yourself-with-these-shortcuts-will-make-coding-in-esproc-spl-more-efficient-and-enjoyable-for-this-guide-we-ll-focus-on-using-the-esproc-ide-as-it-provides-the-most-seamless-experience-for-beginners-loading-your-first-dataset-csv-json-and-database-connections-now-that-you-ve-installed-and-configured-esproc-spl-it-s-time-to-start-working-with-actual-data-one-of-the-first-skills-you-need-to-understand-is-loading-data-from-various-sources-in-this-section-i-ll-walk-you-through-importing-data-from-csv-files-json-documents-and-database-connections-using-the-esproc-ide-working-with-csv-comma-separated-value-csv-files-are-among-the-most-common-formats-for-storing-tabular-data-they-re-simple-text-files-where-each-line-represents-a-row-and-values-are-separated-by-commas-or-other-delimiters-loading-csv-files-in-esproc-spl-is-remarkably-simple-to-load-a-csv-file-in-the-esproc-ide-you-ll-use-the-file-function-combined-with-the-import-ct-method-open-the-esproc-ide-and-create-a-new-script-then-type-the-following-code-a-1-file-data-sales-csv-import-ct-load-a-csv-file-with-headers-2-a1-to-5-display-the-first-5-rows-to-verify-the-data-loaded-correctly-when-you-run-this-code-esproc-will-load-the-csv-file-and-display-the-results-in-cell-a1-the-import-ct-method-tells-esproc-to-import-the-file-as-a-table-with-the-first-row-treated-as-column-headers-the-c-option-specifies-that-the-file-is-comma-separated-which-is-typical-for-csv-files-the-t-option-indicates-that-the-first-row-contains-column-names-let-s-look-at-the-output-you-ll-see-in-cell-a2\">Data analysis is an important skill, and <a href=\"https:\/\/www.python.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python<\/a> has been the go-to language for many analysts and data scientists over the years. With libraries like <a href=\"https:\/\/pandas.pydata.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pandas<\/a> and <a href=\"https:\/\/numpy.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">NumPy<\/a>, Python makes handling structured data easy. However, as datasets grow larger and queries become more complex, performance issues arise &#8211; which is where <a href=\"https:\/\/www.esproc.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">esProc SPL<\/a> (Structured Process Language) comes in.<br><br>esProc SPL is designed specifically for structured data analysis, offering a simpler and more efficient approach to handling large-scale data operations. Unlike Python, which requires external libraries and extensive code to manipulate data, esProc SPL provides a streamlined, <a href=\"https:\/\/www.w3schools.com\/sql\/sql_intro.asp\" target=\"_blank\" rel=\"noreferrer noopener\">SQL<\/a>-like syntax that reduces complexity and improves performance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-esproc-spl-and-why-should-python-users-care\">What is esProc SPL, and why should Python users care?<\/h2>\n\n\n\n<p id=\"h-introduction-data-analysis-has-become-an-important-skill-today-and-python-has-been-the-go-to-language-for-many-analysts-and-data-scientists-with-libraries-like-pandas-and-numpy-python-makes-handling-structured-data-easy-however-as-datasets-grow-larger-and-queries-become-more-complex-performance-issues-arise-this-is-where-esproc-spl-structured-process-language-comes-in-esproc-spl-is-designed-specifically-for-structured-data-analysis-offering-a-simpler-and-more-efficient-approach-to-handling-large-scale-data-operations-unlike-python-which-requires-external-libraries-and-extensive-code-to-manipulate-data-esproc-spl-provides-a-streamlined-sql-like-syntax-that-reduces-complexity-and-improves-performance-this-article-is-the-first-part-of-the-series-data-analysis-from-python-to-esproc-spl-here-you-ll-learn-how-to-set-up-esproc-spl-install-it-on-different-operating-systems-configure-your-development-environment-and-load-your-first-dataset-you-ll-also-write-your-first-spl-script-and-compare-the-setup-process-with-python-by-the-end-of-this-article-you-ll-have-a-fully-functional-esproc-spl-environment-and-be-ready-to-look-into-its-capabilities-in-depth-what-is-esproc-spl-and-why-should-python-users-care-esproc-spl-is-a-data-computing-language-designed-specifically-for-structured-data-processing-unlike-python-which-requires-external-libraries-like-pandas-for-data-manipulation-esproc-spl-is-built-from-the-ground-up-to-handle-structured-data-efficiently-it-combines-the-best-aspects-of-sql-s-data-manipulation-capabilities-with-the-flexibility-of-a-scripting-language-making-it-an-excellent-tool-for-filtering-grouping-and-aggregating-datasets-one-of-the-key-advantages-of-esproc-spl-is-its-simplified-syntax-operations-that-require-multiple-lines-of-pandas-code-can-often-be-accomplished-in-a-single-spl-statement-additionally-its-cellset-structure-optimizes-performance-for-large-datasets-reducing-memory-overhead-and-improving-execution-speed-esproc-spl-allows-users-to-perform-sql-like-operations-directly-on-files-without-requiring-a-database-making-it-a-practical-choice-for-working-with-csv-json-and-excel-data-for-python-users-esproc-spl-is-not-a-replacement-but-a-complementary-tool-that-can-handle-the-heavy-lifting-in-data-transformation-before-passing-results-to-python-for-visualization-or-machine-learning-tasks-it-is-particularly-useful-for-those-who-find-pandas-syntax-complex-or-need-a-more-sql-like-approach-without-the-overhead-of-a-full-database-installing-esproc-spl-a-step-by-step-guide-to-start-using-esproc-spl-you-need-to-install-it-on-your-operating-system-below-are-the-installation-steps-for-windows-macos-and-linux-installing-esproc-spl-on-windows-download-the-installer-visit-the-official-esproc-spl-download-page-and-download-the-windows-installer-run-the-installer-double-click-the-exe-file-and-follow-the-on-screen-instructions-complete-installation-after-installation-launch-esproc-spl-from-the-start-menu-installing-esproc-spl-on-macos-download-the-macos-package-go-to-the-esproc-spl-website-and-download-the-macos-version-install-the-package-open-the-dmg-file-and-drag-esproc-spl-to-the-applications-folder-launch-esproc-spl-open-the-application-from-the-launchpad-or-terminal-installing-esproc-spl-on-linux-download-the-linux-archive-get-the-tar-gz-file-from-the-official-site-extract-the-files-tar-xvzf-esproc-linux-tar-gz-3-run-esproc-spl-cd-esproc-esproc-configuring-your-development-environment-ide-options-the-esproc-ide-comes-with-several-configuration-options-that-allow-you-to-tailor-your-development-experience-for-better-efficiency-adjusting-these-settings-can-improve-readability-performance-and-overall-workflow-before-coding-you-may-want-to-customize-the-ide-to-suit-your-preferences-to-access-the-settings-click-on-tools-in-the-top-menu-and-select-options-to-open-the-configuration-dialog-one-of-the-first-things-you-can-adjust-is-the-editor-s-appearance-choosing-a-monospaced-font-like-consolas-or-source-code-pro-can-improve-code-readability-a-comfortable-font-size-typically-between-12-to-14pt-ensures-your-scripts-remain-clear-and-easy-to-read-you-can-switch-between-a-light-or-dark-theme-depending-on-your-preference-optimizing-memory-allocation-is-necessary-for-performance-if-you-plan-to-work-with-large-datasets-navigate-to-the-performance-tab-in-the-settings-and-increase-the-maximum-memory-allocation-a-good-starting-point-is-50-of-your-system-s-available-ram-which-helps-the-ide-handle-large-scale-computations-smoothly-another-useful-configuration-is-setting-default-file-locations-you-can-specify-where-your-spl-scripts-should-be-saved-and-define-default-directories-for-datasets-ensuring-quick-access-to-frequently-used-files-keyboard-shortcuts-for-faster-workflow-mastering-keyboard-shortcuts-in-esproc-spl-can-significantly-improve-your-productivity-the-following-shortcuts-help-streamline-your-workflow-f5-executes-the-current-script-f9-runs-a-selected-block-of-code-ctrl-space-activates-code-completion-ctrl-comments-or-uncomments-selected-lines-ctrl-s-saves-the-current-script-f1-opens-the-help-documentation-you-can-view-and-customize-additional-shortcuts-by-navigating-to-the-keyboard-section-in-the-options-dialog-configuring-the-ide-and-familiarizing-yourself-with-these-shortcuts-will-make-coding-in-esproc-spl-more-efficient-and-enjoyable-for-this-guide-we-ll-focus-on-using-the-esproc-ide-as-it-provides-the-most-seamless-experience-for-beginners-loading-your-first-dataset-csv-json-and-database-connections-now-that-you-ve-installed-and-configured-esproc-spl-it-s-time-to-start-working-with-actual-data-one-of-the-first-skills-you-need-to-understand-is-loading-data-from-various-sources-in-this-section-i-ll-walk-you-through-importing-data-from-csv-files-json-documents-and-database-connections-using-the-esproc-ide-working-with-csv-comma-separated-value-csv-files-are-among-the-most-common-formats-for-storing-tabular-data-they-re-simple-text-files-where-each-line-represents-a-row-and-values-are-separated-by-commas-or-other-delimiters-loading-csv-files-in-esproc-spl-is-remarkably-simple-to-load-a-csv-file-in-the-esproc-ide-you-ll-use-the-file-function-combined-with-the-import-ct-method-open-the-esproc-ide-and-create-a-new-script-then-type-the-following-code-a-1-file-data-sales-csv-import-ct-load-a-csv-file-with-headers-2-a1-to-5-display-the-first-5-rows-to-verify-the-data-loaded-correctly-when-you-run-this-code-esproc-will-load-the-csv-file-and-display-the-results-in-cell-a1-the-import-ct-method-tells-esproc-to-import-the-file-as-a-table-with-the-first-row-treated-as-column-headers-the-c-option-specifies-that-the-file-is-comma-separated-which-is-typical-for-csv-files-the-t-option-indicates-that-the-first-row-contains-column-names-let-s-look-at-the-output-you-ll-see-in-cell-a2\">esProc SPL is a data computing language designed specifically for structured data processing. Unlike Python, which requires external libraries like Pandas for data manipulation, esProc SPL is built from the ground up to handle structured data efficiently. It combines the best aspects of <a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/esproc-spl-and-sql-complimentary-but-different-technologies\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL\u2019s<\/a> data manipulation capabilities with the flexibility of a scripting language, making it an excellent tool for filtering, grouping, and aggregating datasets.<\/p>\n\n\n\n<p id=\"h-introduction-data-analysis-has-become-an-important-skill-today-and-python-has-been-the-go-to-language-for-many-analysts-and-data-scientists-with-libraries-like-pandas-and-numpy-python-makes-handling-structured-data-easy-however-as-datasets-grow-larger-and-queries-become-more-complex-performance-issues-arise-this-is-where-esproc-spl-structured-process-language-comes-in-esproc-spl-is-designed-specifically-for-structured-data-analysis-offering-a-simpler-and-more-efficient-approach-to-handling-large-scale-data-operations-unlike-python-which-requires-external-libraries-and-extensive-code-to-manipulate-data-esproc-spl-provides-a-streamlined-sql-like-syntax-that-reduces-complexity-and-improves-performance-this-article-is-the-first-part-of-the-series-data-analysis-from-python-to-esproc-spl-here-you-ll-learn-how-to-set-up-esproc-spl-install-it-on-different-operating-systems-configure-your-development-environment-and-load-your-first-dataset-you-ll-also-write-your-first-spl-script-and-compare-the-setup-process-with-python-by-the-end-of-this-article-you-ll-have-a-fully-functional-esproc-spl-environment-and-be-ready-to-look-into-its-capabilities-in-depth-what-is-esproc-spl-and-why-should-python-users-care-esproc-spl-is-a-data-computing-language-designed-specifically-for-structured-data-processing-unlike-python-which-requires-external-libraries-like-pandas-for-data-manipulation-esproc-spl-is-built-from-the-ground-up-to-handle-structured-data-efficiently-it-combines-the-best-aspects-of-sql-s-data-manipulation-capabilities-with-the-flexibility-of-a-scripting-language-making-it-an-excellent-tool-for-filtering-grouping-and-aggregating-datasets-one-of-the-key-advantages-of-esproc-spl-is-its-simplified-syntax-operations-that-require-multiple-lines-of-pandas-code-can-often-be-accomplished-in-a-single-spl-statement-additionally-its-cellset-structure-optimizes-performance-for-large-datasets-reducing-memory-overhead-and-improving-execution-speed-esproc-spl-allows-users-to-perform-sql-like-operations-directly-on-files-without-requiring-a-database-making-it-a-practical-choice-for-working-with-csv-json-and-excel-data-for-python-users-esproc-spl-is-not-a-replacement-but-a-complementary-tool-that-can-handle-the-heavy-lifting-in-data-transformation-before-passing-results-to-python-for-visualization-or-machine-learning-tasks-it-is-particularly-useful-for-those-who-find-pandas-syntax-complex-or-need-a-more-sql-like-approach-without-the-overhead-of-a-full-database-installing-esproc-spl-a-step-by-step-guide-to-start-using-esproc-spl-you-need-to-install-it-on-your-operating-system-below-are-the-installation-steps-for-windows-macos-and-linux-installing-esproc-spl-on-windows-download-the-installer-visit-the-official-esproc-spl-download-page-and-download-the-windows-installer-run-the-installer-double-click-the-exe-file-and-follow-the-on-screen-instructions-complete-installation-after-installation-launch-esproc-spl-from-the-start-menu-installing-esproc-spl-on-macos-download-the-macos-package-go-to-the-esproc-spl-website-and-download-the-macos-version-install-the-package-open-the-dmg-file-and-drag-esproc-spl-to-the-applications-folder-launch-esproc-spl-open-the-application-from-the-launchpad-or-terminal-installing-esproc-spl-on-linux-download-the-linux-archive-get-the-tar-gz-file-from-the-official-site-extract-the-files-tar-xvzf-esproc-linux-tar-gz-3-run-esproc-spl-cd-esproc-esproc-configuring-your-development-environment-ide-options-the-esproc-ide-comes-with-several-configuration-options-that-allow-you-to-tailor-your-development-experience-for-better-efficiency-adjusting-these-settings-can-improve-readability-performance-and-overall-workflow-before-coding-you-may-want-to-customize-the-ide-to-suit-your-preferences-to-access-the-settings-click-on-tools-in-the-top-menu-and-select-options-to-open-the-configuration-dialog-one-of-the-first-things-you-can-adjust-is-the-editor-s-appearance-choosing-a-monospaced-font-like-consolas-or-source-code-pro-can-improve-code-readability-a-comfortable-font-size-typically-between-12-to-14pt-ensures-your-scripts-remain-clear-and-easy-to-read-you-can-switch-between-a-light-or-dark-theme-depending-on-your-preference-optimizing-memory-allocation-is-necessary-for-performance-if-you-plan-to-work-with-large-datasets-navigate-to-the-performance-tab-in-the-settings-and-increase-the-maximum-memory-allocation-a-good-starting-point-is-50-of-your-system-s-available-ram-which-helps-the-ide-handle-large-scale-computations-smoothly-another-useful-configuration-is-setting-default-file-locations-you-can-specify-where-your-spl-scripts-should-be-saved-and-define-default-directories-for-datasets-ensuring-quick-access-to-frequently-used-files-keyboard-shortcuts-for-faster-workflow-mastering-keyboard-shortcuts-in-esproc-spl-can-significantly-improve-your-productivity-the-following-shortcuts-help-streamline-your-workflow-f5-executes-the-current-script-f9-runs-a-selected-block-of-code-ctrl-space-activates-code-completion-ctrl-comments-or-uncomments-selected-lines-ctrl-s-saves-the-current-script-f1-opens-the-help-documentation-you-can-view-and-customize-additional-shortcuts-by-navigating-to-the-keyboard-section-in-the-options-dialog-configuring-the-ide-and-familiarizing-yourself-with-these-shortcuts-will-make-coding-in-esproc-spl-more-efficient-and-enjoyable-for-this-guide-we-ll-focus-on-using-the-esproc-ide-as-it-provides-the-most-seamless-experience-for-beginners-loading-your-first-dataset-csv-json-and-database-connections-now-that-you-ve-installed-and-configured-esproc-spl-it-s-time-to-start-working-with-actual-data-one-of-the-first-skills-you-need-to-understand-is-loading-data-from-various-sources-in-this-section-i-ll-walk-you-through-importing-data-from-csv-files-json-documents-and-database-connections-using-the-esproc-ide-working-with-csv-comma-separated-value-csv-files-are-among-the-most-common-formats-for-storing-tabular-data-they-re-simple-text-files-where-each-line-represents-a-row-and-values-are-separated-by-commas-or-other-delimiters-loading-csv-files-in-esproc-spl-is-remarkably-simple-to-load-a-csv-file-in-the-esproc-ide-you-ll-use-the-file-function-combined-with-the-import-ct-method-open-the-esproc-ide-and-create-a-new-script-then-type-the-following-code-a-1-file-data-sales-csv-import-ct-load-a-csv-file-with-headers-2-a1-to-5-display-the-first-5-rows-to-verify-the-data-loaded-correctly-when-you-run-this-code-esproc-will-load-the-csv-file-and-display-the-results-in-cell-a1-the-import-ct-method-tells-esproc-to-import-the-file-as-a-table-with-the-first-row-treated-as-column-headers-the-c-option-specifies-that-the-file-is-comma-separated-which-is-typical-for-csv-files-the-t-option-indicates-that-the-first-row-contains-column-names-let-s-look-at-the-output-you-ll-see-in-cell-a2\">One of the key advantages of esProc SPL is its simplified syntax. Operations that require multiple lines of Pandas code can often be accomplished in a single SPL statement. Additionally, its cellset structure optimizes performance for large datasets, reducing memory overhead and improving execution speed. esProc SPL allows users to perform SQL-like operations directly on files without requiring a database, making it a practical choice for working with <a href=\"https:\/\/en.wikipedia.org\/wiki\/Comma-separated_values#:~:text=Comma%2Dseparated%20values%20(CSV),typically%20represents%20one%20data%20record.\" target=\"_blank\" rel=\"noreferrer noopener\">CSV<\/a>, <a href=\"https:\/\/www.w3schools.com\/js\/js_json_intro.asp\" target=\"_blank\" rel=\"noreferrer noopener\">JSON<\/a>, and <a href=\"https:\/\/www.simplilearn.com\/tutorials\/excel-tutorial\/data-analysis-excel\" target=\"_blank\" rel=\"noreferrer noopener\">Excel<\/a> data.<\/p>\n\n\n\n<p id=\"h-introduction-data-analysis-has-become-an-important-skill-today-and-python-has-been-the-go-to-language-for-many-analysts-and-data-scientists-with-libraries-like-pandas-and-numpy-python-makes-handling-structured-data-easy-however-as-datasets-grow-larger-and-queries-become-more-complex-performance-issues-arise-this-is-where-esproc-spl-structured-process-language-comes-in-esproc-spl-is-designed-specifically-for-structured-data-analysis-offering-a-simpler-and-more-efficient-approach-to-handling-large-scale-data-operations-unlike-python-which-requires-external-libraries-and-extensive-code-to-manipulate-data-esproc-spl-provides-a-streamlined-sql-like-syntax-that-reduces-complexity-and-improves-performance-this-article-is-the-first-part-of-the-series-data-analysis-from-python-to-esproc-spl-here-you-ll-learn-how-to-set-up-esproc-spl-install-it-on-different-operating-systems-configure-your-development-environment-and-load-your-first-dataset-you-ll-also-write-your-first-spl-script-and-compare-the-setup-process-with-python-by-the-end-of-this-article-you-ll-have-a-fully-functional-esproc-spl-environment-and-be-ready-to-look-into-its-capabilities-in-depth-what-is-esproc-spl-and-why-should-python-users-care-esproc-spl-is-a-data-computing-language-designed-specifically-for-structured-data-processing-unlike-python-which-requires-external-libraries-like-pandas-for-data-manipulation-esproc-spl-is-built-from-the-ground-up-to-handle-structured-data-efficiently-it-combines-the-best-aspects-of-sql-s-data-manipulation-capabilities-with-the-flexibility-of-a-scripting-language-making-it-an-excellent-tool-for-filtering-grouping-and-aggregating-datasets-one-of-the-key-advantages-of-esproc-spl-is-its-simplified-syntax-operations-that-require-multiple-lines-of-pandas-code-can-often-be-accomplished-in-a-single-spl-statement-additionally-its-cellset-structure-optimizes-performance-for-large-datasets-reducing-memory-overhead-and-improving-execution-speed-esproc-spl-allows-users-to-perform-sql-like-operations-directly-on-files-without-requiring-a-database-making-it-a-practical-choice-for-working-with-csv-json-and-excel-data-for-python-users-esproc-spl-is-not-a-replacement-but-a-complementary-tool-that-can-handle-the-heavy-lifting-in-data-transformation-before-passing-results-to-python-for-visualization-or-machine-learning-tasks-it-is-particularly-useful-for-those-who-find-pandas-syntax-complex-or-need-a-more-sql-like-approach-without-the-overhead-of-a-full-database-installing-esproc-spl-a-step-by-step-guide-to-start-using-esproc-spl-you-need-to-install-it-on-your-operating-system-below-are-the-installation-steps-for-windows-macos-and-linux-installing-esproc-spl-on-windows-download-the-installer-visit-the-official-esproc-spl-download-page-and-download-the-windows-installer-run-the-installer-double-click-the-exe-file-and-follow-the-on-screen-instructions-complete-installation-after-installation-launch-esproc-spl-from-the-start-menu-installing-esproc-spl-on-macos-download-the-macos-package-go-to-the-esproc-spl-website-and-download-the-macos-version-install-the-package-open-the-dmg-file-and-drag-esproc-spl-to-the-applications-folder-launch-esproc-spl-open-the-application-from-the-launchpad-or-terminal-installing-esproc-spl-on-linux-download-the-linux-archive-get-the-tar-gz-file-from-the-official-site-extract-the-files-tar-xvzf-esproc-linux-tar-gz-3-run-esproc-spl-cd-esproc-esproc-configuring-your-development-environment-ide-options-the-esproc-ide-comes-with-several-configuration-options-that-allow-you-to-tailor-your-development-experience-for-better-efficiency-adjusting-these-settings-can-improve-readability-performance-and-overall-workflow-before-coding-you-may-want-to-customize-the-ide-to-suit-your-preferences-to-access-the-settings-click-on-tools-in-the-top-menu-and-select-options-to-open-the-configuration-dialog-one-of-the-first-things-you-can-adjust-is-the-editor-s-appearance-choosing-a-monospaced-font-like-consolas-or-source-code-pro-can-improve-code-readability-a-comfortable-font-size-typically-between-12-to-14pt-ensures-your-scripts-remain-clear-and-easy-to-read-you-can-switch-between-a-light-or-dark-theme-depending-on-your-preference-optimizing-memory-allocation-is-necessary-for-performance-if-you-plan-to-work-with-large-datasets-navigate-to-the-performance-tab-in-the-settings-and-increase-the-maximum-memory-allocation-a-good-starting-point-is-50-of-your-system-s-available-ram-which-helps-the-ide-handle-large-scale-computations-smoothly-another-useful-configuration-is-setting-default-file-locations-you-can-specify-where-your-spl-scripts-should-be-saved-and-define-default-directories-for-datasets-ensuring-quick-access-to-frequently-used-files-keyboard-shortcuts-for-faster-workflow-mastering-keyboard-shortcuts-in-esproc-spl-can-significantly-improve-your-productivity-the-following-shortcuts-help-streamline-your-workflow-f5-executes-the-current-script-f9-runs-a-selected-block-of-code-ctrl-space-activates-code-completion-ctrl-comments-or-uncomments-selected-lines-ctrl-s-saves-the-current-script-f1-opens-the-help-documentation-you-can-view-and-customize-additional-shortcuts-by-navigating-to-the-keyboard-section-in-the-options-dialog-configuring-the-ide-and-familiarizing-yourself-with-these-shortcuts-will-make-coding-in-esproc-spl-more-efficient-and-enjoyable-for-this-guide-we-ll-focus-on-using-the-esproc-ide-as-it-provides-the-most-seamless-experience-for-beginners-loading-your-first-dataset-csv-json-and-database-connections-now-that-you-ve-installed-and-configured-esproc-spl-it-s-time-to-start-working-with-actual-data-one-of-the-first-skills-you-need-to-understand-is-loading-data-from-various-sources-in-this-section-i-ll-walk-you-through-importing-data-from-csv-files-json-documents-and-database-connections-using-the-esproc-ide-working-with-csv-comma-separated-value-csv-files-are-among-the-most-common-formats-for-storing-tabular-data-they-re-simple-text-files-where-each-line-represents-a-row-and-values-are-separated-by-commas-or-other-delimiters-loading-csv-files-in-esproc-spl-is-remarkably-simple-to-load-a-csv-file-in-the-esproc-ide-you-ll-use-the-file-function-combined-with-the-import-ct-method-open-the-esproc-ide-and-create-a-new-script-then-type-the-following-code-a-1-file-data-sales-csv-import-ct-load-a-csv-file-with-headers-2-a1-to-5-display-the-first-5-rows-to-verify-the-data-loaded-correctly-when-you-run-this-code-esproc-will-load-the-csv-file-and-display-the-results-in-cell-a1-the-import-ct-method-tells-esproc-to-import-the-file-as-a-table-with-the-first-row-treated-as-column-headers-the-c-option-specifies-that-the-file-is-comma-separated-which-is-typical-for-csv-files-the-t-option-indicates-that-the-first-row-contains-column-names-let-s-look-at-the-output-you-ll-see-in-cell-a2\">For Python users, esProc SPL is not a replacement but a complementary tool that can handle the heavy lifting in data transformation before passing results to Python for visualization or machine learning tasks. It&#8217;s particularly useful for those who find Pandas\u2019 syntax complex, or those who need a more SQL-like approach without the overhead of a full database.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-install-esproc-spl-on-windows-macos-and-linux-step-by-step-guide\">How to install esProc SPL on Windows, macOS and Linux: step-by-step guide<\/h2>\n\n\n\n<p id=\"h-introduction-data-analysis-has-become-an-important-skill-today-and-python-has-been-the-go-to-language-for-many-analysts-and-data-scientists-with-libraries-like-pandas-and-numpy-python-makes-handling-structured-data-easy-however-as-datasets-grow-larger-and-queries-become-more-complex-performance-issues-arise-this-is-where-esproc-spl-structured-process-language-comes-in-esproc-spl-is-designed-specifically-for-structured-data-analysis-offering-a-simpler-and-more-efficient-approach-to-handling-large-scale-data-operations-unlike-python-which-requires-external-libraries-and-extensive-code-to-manipulate-data-esproc-spl-provides-a-streamlined-sql-like-syntax-that-reduces-complexity-and-improves-performance-this-article-is-the-first-part-of-the-series-data-analysis-from-python-to-esproc-spl-here-you-ll-learn-how-to-set-up-esproc-spl-install-it-on-different-operating-systems-configure-your-development-environment-and-load-your-first-dataset-you-ll-also-write-your-first-spl-script-and-compare-the-setup-process-with-python-by-the-end-of-this-article-you-ll-have-a-fully-functional-esproc-spl-environment-and-be-ready-to-look-into-its-capabilities-in-depth-what-is-esproc-spl-and-why-should-python-users-care-esproc-spl-is-a-data-computing-language-designed-specifically-for-structured-data-processing-unlike-python-which-requires-external-libraries-like-pandas-for-data-manipulation-esproc-spl-is-built-from-the-ground-up-to-handle-structured-data-efficiently-it-combines-the-best-aspects-of-sql-s-data-manipulation-capabilities-with-the-flexibility-of-a-scripting-language-making-it-an-excellent-tool-for-filtering-grouping-and-aggregating-datasets-one-of-the-key-advantages-of-esproc-spl-is-its-simplified-syntax-operations-that-require-multiple-lines-of-pandas-code-can-often-be-accomplished-in-a-single-spl-statement-additionally-its-cellset-structure-optimizes-performance-for-large-datasets-reducing-memory-overhead-and-improving-execution-speed-esproc-spl-allows-users-to-perform-sql-like-operations-directly-on-files-without-requiring-a-database-making-it-a-practical-choice-for-working-with-csv-json-and-excel-data-for-python-users-esproc-spl-is-not-a-replacement-but-a-complementary-tool-that-can-handle-the-heavy-lifting-in-data-transformation-before-passing-results-to-python-for-visualization-or-machine-learning-tasks-it-is-particularly-useful-for-those-who-find-pandas-syntax-complex-or-need-a-more-sql-like-approach-without-the-overhead-of-a-full-database-installing-esproc-spl-a-step-by-step-guide-to-start-using-esproc-spl-you-need-to-install-it-on-your-operating-system-below-are-the-installation-steps-for-windows-macos-and-linux-installing-esproc-spl-on-windows-download-the-installer-visit-the-official-esproc-spl-download-page-and-download-the-windows-installer-run-the-installer-double-click-the-exe-file-and-follow-the-on-screen-instructions-complete-installation-after-installation-launch-esproc-spl-from-the-start-menu-installing-esproc-spl-on-macos-download-the-macos-package-go-to-the-esproc-spl-website-and-download-the-macos-version-install-the-package-open-the-dmg-file-and-drag-esproc-spl-to-the-applications-folder-launch-esproc-spl-open-the-application-from-the-launchpad-or-terminal-installing-esproc-spl-on-linux-download-the-linux-archive-get-the-tar-gz-file-from-the-official-site-extract-the-files-tar-xvzf-esproc-linux-tar-gz-3-run-esproc-spl-cd-esproc-esproc-configuring-your-development-environment-ide-options-the-esproc-ide-comes-with-several-configuration-options-that-allow-you-to-tailor-your-development-experience-for-better-efficiency-adjusting-these-settings-can-improve-readability-performance-and-overall-workflow-before-coding-you-may-want-to-customize-the-ide-to-suit-your-preferences-to-access-the-settings-click-on-tools-in-the-top-menu-and-select-options-to-open-the-configuration-dialog-one-of-the-first-things-you-can-adjust-is-the-editor-s-appearance-choosing-a-monospaced-font-like-consolas-or-source-code-pro-can-improve-code-readability-a-comfortable-font-size-typically-between-12-to-14pt-ensures-your-scripts-remain-clear-and-easy-to-read-you-can-switch-between-a-light-or-dark-theme-depending-on-your-preference-optimizing-memory-allocation-is-necessary-for-performance-if-you-plan-to-work-with-large-datasets-navigate-to-the-performance-tab-in-the-settings-and-increase-the-maximum-memory-allocation-a-good-starting-point-is-50-of-your-system-s-available-ram-which-helps-the-ide-handle-large-scale-computations-smoothly-another-useful-configuration-is-setting-default-file-locations-you-can-specify-where-your-spl-scripts-should-be-saved-and-define-default-directories-for-datasets-ensuring-quick-access-to-frequently-used-files-keyboard-shortcuts-for-faster-workflow-mastering-keyboard-shortcuts-in-esproc-spl-can-significantly-improve-your-productivity-the-following-shortcuts-help-streamline-your-workflow-f5-executes-the-current-script-f9-runs-a-selected-block-of-code-ctrl-space-activates-code-completion-ctrl-comments-or-uncomments-selected-lines-ctrl-s-saves-the-current-script-f1-opens-the-help-documentation-you-can-view-and-customize-additional-shortcuts-by-navigating-to-the-keyboard-section-in-the-options-dialog-configuring-the-ide-and-familiarizing-yourself-with-these-shortcuts-will-make-coding-in-esproc-spl-more-efficient-and-enjoyable-for-this-guide-we-ll-focus-on-using-the-esproc-ide-as-it-provides-the-most-seamless-experience-for-beginners-loading-your-first-dataset-csv-json-and-database-connections-now-that-you-ve-installed-and-configured-esproc-spl-it-s-time-to-start-working-with-actual-data-one-of-the-first-skills-you-need-to-understand-is-loading-data-from-various-sources-in-this-section-i-ll-walk-you-through-importing-data-from-csv-files-json-documents-and-database-connections-using-the-esproc-ide-working-with-csv-comma-separated-value-csv-files-are-among-the-most-common-formats-for-storing-tabular-data-they-re-simple-text-files-where-each-line-represents-a-row-and-values-are-separated-by-commas-or-other-delimiters-loading-csv-files-in-esproc-spl-is-remarkably-simple-to-load-a-csv-file-in-the-esproc-ide-you-ll-use-the-file-function-combined-with-the-import-ct-method-open-the-esproc-ide-and-create-a-new-script-then-type-the-following-code-a-1-file-data-sales-csv-import-ct-load-a-csv-file-with-headers-2-a1-to-5-display-the-first-5-rows-to-verify-the-data-loaded-correctly-when-you-run-this-code-esproc-will-load-the-csv-file-and-display-the-results-in-cell-a1-the-import-ct-method-tells-esproc-to-import-the-file-as-a-table-with-the-first-row-treated-as-column-headers-the-c-option-specifies-that-the-file-is-comma-separated-which-is-typical-for-csv-files-the-t-option-indicates-that-the-first-row-contains-column-names-let-s-look-at-the-output-you-ll-see-in-cell-a2\">Here&#8217;s how to install esProc SPL on Windows, macOS, and Linux:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-install-esproc-spl-on-windows\">How to install esProc SPL on Windows<\/h3>\n\n\n\n<p id=\"h-how-to-install-esproc-spl-on-windows\">Visit the <a href=\"https:\/\/www.esproc.com\/download-desktop\/\" target=\"_blank\" rel=\"noreferrer noopener\">official esProc SPL download page<\/a> and download the Windows installer. To run the installer, double-click the .exe file and follow the on-screen instructions. After installation, launch esProc SPL from the Start menu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-install-esproc-spl-on-macos\">How to install esProc SPL on macOS<\/h3>\n\n\n\n<p>Download the macOS version of esProc SPL from the <a href=\"https:\/\/www.esproc.com\/download-desktop\/\" target=\"_blank\" rel=\"noreferrer noopener\">website<\/a>. Open the .dmg file and drag esProc SPL to the Applications folder. To launch esProc SPL, open the application from the Launchpad or Terminal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-install-esproc-spl-on-linux\">How to install esProc SPL on Linux<\/h3>\n\n\n\n<p>First, you&#8217;ll need to download the Linux archive by getting the .tar.gz file from the official site. Then, extract the files: <code>tar -xvzf esProc-linux.tar.gz<\/code>, and run esProc SPL: <\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">cd esProc \n.\/esProc\n<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-configure-your-development-environment-ide-options\">How to configure your development environment (IDE options)<\/h2>\n\n\n\n<p>The esProc IDE (integrated development environment) comes with several configuration options, allowing you to tailor your development experience for better efficiency. Adjusting these settings can improve readability, performance, and overall workflow. <\/p>\n\n\n\n<p>Before coding, you may want to customize the IDE to suit your preferences. To access the settings, click on &#8220;Tools&#8221; in the top menu and select &#8220;Options&#8221; to open the configuration dialog.<br>&nbsp;<br>One of the first things you can adjust is the editor\u2019s appearance. Choosing a monospaced font like <a href=\"https:\/\/learn.microsoft.com\/en-us\/typography\/font-list\/consolas\" target=\"_blank\" rel=\"noreferrer noopener\">Consolas<\/a> or <a href=\"https:\/\/fonts.google.com\/specimen\/Source+Code+Pro\" target=\"_blank\" rel=\"noreferrer noopener\">Source Code Pro<\/a> can improve code readability. A comfortable font size, typically between 12 to 14pt, ensures your scripts remain clear and easy to read. You can switch between a light or dark theme depending on your preference.<br>&nbsp;<br>Optimizing memory allocation is necessary for performance if you plan to work with large datasets. Navigate to the &#8220;Performance&#8221; tab in the settings and increase the maximum memory allocation. A good starting point is 50% of your system\u2019s available RAM, which helps the IDE handle large-scale computations smoothly.<br>&nbsp;<br>Another useful configuration is setting default file locations. You can specify where your SPL scripts should be saved and define default directories for datasets, ensuring quick access to frequently used files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-keyboard-shortcuts-for-faster-workflow\">Keyboard shortcuts for faster workflow<\/h3>\n\n\n\n<p>Mastering keyboard shortcuts in esProc SPL can significantly improve your productivity. The following shortcuts help streamline your workflow:<br>&nbsp;<br>F5 \u2013 Executes the current script<br><br>F9 \u2013 Runs a selected block of code<br><br>Ctrl + Space \u2013 Activates code completion<br><br>Ctrl + \/ \u2013 Comments or uncomments selected lines<br><br>Ctrl + S \u2013 Saves the current script<br><br>F1 \u2013 Opens the help documentation<br>&nbsp;<br>You can view and customize additional shortcuts by navigating to the &#8220;Keyboard&#8221; section in the Options dialog. Configuring the IDE and familiarizing yourself with these shortcuts will make coding in esProc SPL more efficient and enjoyable. For this guide, we&#8217;ll focus on using the esProc IDE, as it provides the most seamless experience for beginners.<\/p>\n\n\n\n<section id=\"my-first-block-block_0a3baa57916dd630b324bb8788d291da\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Simple Talk is brought to you by Redgate Software<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            Take control of your databases with the trusted Database DevOps solutions provider. Automate with confidence, scale securely, and unlock growth through AI.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/solutions\/overview\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Discover how Redgate can help you: Simple Talk is brought to you by Redgate Software\">Discover how Redgate can help you<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-load-your-first-dataset-in-esproc-spl-csv-json-and-database-connections\">How to load your first dataset in esProc SPL: CSV, JSON, and database connections<\/h2>\n\n\n\n<p>Now that you&#8217;ve installed and configured esProc SPL, it&#8217;s time to start working with actual data. One of the first skills you need to understand is loading data from various sources. In this section, I&#8217;ll walk you through importing data from CSV files, JSON documents, and database connections using the esProc IDE.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-work-with-csv-in-esproc-spl\">How to work with CSV in esProc SPL<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.opc-router.com\/what-is-csv\/\" target=\"_blank\" rel=\"noreferrer noopener\">Comma-separated value (CSV)<\/a> files are among the most common formats for storing tabular data. They&#8217;re simple text files where each line represents a row, and values are separated by commas (or other delimiters). Loading CSV files in esProc SPL is remarkably simple. <\/p>\n\n\n\n<p>To load a CSV file in the esProc IDE, you&#8217;ll use the `file()` function combined with the `import@ct()` method. Open the esProc IDE and create a new script. Then, type the following code:<\/p>\n\n\n\n<p><code>= file(\"data\/sales.csv\").import@ct()<\/code> (load a CSV file with headers)<\/p>\n\n\n\n<p><code>=A1.to(5)<\/code> (display the first 5 rows to verify that the data loaded correctly)<br>&nbsp;<br>When you run this code, EsProc will load the CSV file and display the results in cell A1. The `import@ct()` method tells EsProc to import the file as a table, with the first row treated as column headers. The `@c` option specifies that the file is comma-separated, which is typical for CSV files. The `t` option indicates that the first row contains column names.<\/p>\n\n\n\n<p>Let&#8217;s look at the output you&#8217;ll see in cell A2:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"323\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-58.png\" alt=\"An image showing the output you'll see in cell A2.\" class=\"wp-image-108879\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-58.png 661w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-58-300x147.png 300w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/figure>\n\n\n\n<p>This output shows the first 5 rows of your dataset, with column headers and the corresponding values. You can see that esProc has correctly identified the structure of your data, including the column names and data types. The ID and Quantity columns contain integers, Price contains decimal numbers, Product contains text strings, and Date contains date values.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-does-working-with-csv-in-esproc-spl-compare-to-doing-so-in-python\">How does working with CSV in esProc SPL compare to doing so in Python?<\/h3>\n\n\n\n<p>If you&#8217;re coming from Python, the equivalent code using pandas would look like this:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">import pandas as pd\n\n# Load the CSV file\ndf = pd.read_csv('data\/sales.csv')\n\n# Display the first 5 rows\nprint(df.head())\n<\/pre><\/div>\n\n\n\n<p>Notice how esProc SPL achieves the same result with a more straightforward syntax. You don&#8217;t need to import any libraries or modules \u2013 the file handling capabilities are built right into the language.<\/p>\n\n\n\n<p>Sometimes, your CSV files might have different delimiters or require specific data type conversions. esProc gives you full control over these options:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"952\" height=\"408\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-26-123104.png\" alt=\"The options esProc gives you full control over.\" class=\"wp-image-108880\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-26-123104.png 952w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-26-123104-300x129.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-26-123104-768x329.png 768w\" sizes=\"auto, (max-width: 952px) 100vw, 952px\" \/><\/figure>\n\n\n\n<p>The output for A2 will show you the structure of your dataset:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"348\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-59.png\" alt=\"An image showing the output for A2, which shows you the structure of your dataset.\" class=\"wp-image-108881\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-59.png 686w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-59-300x152.png 300w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><\/figure>\n\n\n\n<p>Notice how the ID column is now treated as a <a href=\"https:\/\/www.lenovo.com\/gb\/en\/glossary\/string\/#:~:text=A%20string%20is%20a%20data,words%2C%20or%20other%20meaningful%20symbols.\" target=\"_blank\" rel=\"noreferrer noopener\">string<\/a> (as specified in our data type parameter) rather than an <a href=\"https:\/\/doodlelearning.com\/maths\/skills\/numbers\/integers\" target=\"_blank\" rel=\"noreferrer noopener\">integer<\/a>. This level of control is particularly useful when working with data that contains leading zeros in codes or other special formatting requirements.<\/p>\n\n\n\n<p>After loading your CSV data, you might want to explore it further. The esProc IDE allows you to examine your data directly in the cell results. Simply click on the cell containing your dataset (A1 in our example), and you&#8217;ll see a preview of the data. <\/p>\n\n\n\n<p>For a more detailed view, right-click on the cell and select &#8220;Browse&#8221; from the context menu. This opens the Data Browser, where you can sort columns, apply filters, and get a better understanding of your data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-work-with-json-files-in-esproc-spl\">How to work with JSON files in esProc SPL<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/oracle-databases\/json-for-absolute-beginners-part-1-introduction\/\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript Object Notation (JSON)<\/a> has become increasingly popular for data exchange due to its readable format and compatibility with web technologies. esProc SPL makes working with JSON files just as easy as CSV files. To load a JSON file in esProc, you&#8217;ll use the `file()` function with the `read()` method:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>&nbsp;<\/td><td>A<\/td><\/tr><tr><td>1<\/td><td><code>file(\"\/Users\/Chisom\/Documents\/sales.json\").read()<\/code><\/td><\/tr><tr><td>2<\/td><td><code>= json(A1)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>When working with JSON files in esProc SPL, you might find that different approaches work better depending on your specific environment and file structure. In my case, I found success with this approach. It first reads the raw content of the JSON file as text using the `read()` function without any options, then parses it into a JSON object using the `json()` function. <\/p>\n\n\n\n<p>This approach can be more explicit and sometimes more reliable when dealing with different JSON formats. Let&#8217;s look at the output:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"948\" height=\"391\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-60.png\" alt=\"An image showing the output of this approach.\" class=\"wp-image-108882\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-60.png 948w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-60-300x124.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-60-768x317.png 768w\" sizes=\"auto, (max-width: 948px) 100vw, 948px\" \/><\/figure>\n\n\n\n<p>This output shows five records from your JSON file, now structured as a table with columns for each property in the JSON objects. esProc has automatically detected the structure and converted it to a format that&#8217;s easy to work with for data analysis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-do-json-files-work-in-python\">How do JSON files work in Python?<\/h3>\n\n\n\n<p>In Python, you would typically use pandas to achieve a similar result:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">import pandas as pd\nimport json\n\n# Read the JSON file\nwith open('documents\/sales.json', 'r') as f:\n    data = json.load(f)\n\n# Convert to DataFrame\ndf = pd.DataFrame(data)\n\n# Display the first 5 rows\nprint(df.head(5))<\/pre><\/div>\n\n\n\n<p>Notice how esProc simplifies this process with its built-in JSON handling capabilities. You don&#8217;t need to import multiple libraries or write separate code for reading and converting the data. To verify the column structure, use:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>&nbsp;<\/td><td>A<\/td><td>&nbsp;<\/td><\/tr><tr><td>3<\/td><td><code>= A2.fno().new(A2.fname(~):Field, A2.field(~):Type)&nbsp;&nbsp;&nbsp;<\/code><\/td><td>Check the structure of the table &nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"895\" height=\"327\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-61.png\" alt=\"\" class=\"wp-image-108883\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-61.png 895w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-61-300x110.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-61-768x281.png 768w\" sizes=\"auto, (max-width: 895px) 100vw, 895px\" \/><\/figure>\n\n\n\n<p>It gives a table with field names and data types.<\/p>\n\n\n\n<p>JSON files can have complex nested structures. esProc provides powerful tools for handling these as well:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>&nbsp;<\/td><td>A<\/td><td>&nbsp;<\/td><\/tr><tr><td>1<\/td><td><code>=file(\"\/Users\/Chisom\/Documents\/sales.json\").read()<\/code><\/td><td>&nbsp;<\/td><\/tr><tr><td>2<\/td><td><code>= json(A1)<\/code><\/td><td>&nbsp;<\/td><\/tr><tr><td>3<\/td><td>&nbsp;<code> = A2.derive(Customer.name:CustomerName, Customer.email:CustomerEmail<\/code>)<\/td><td>Extract nested customer information. &nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The output will look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"908\" height=\"248\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-62.png\" alt=\"\" class=\"wp-image-108884\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-62.png 908w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-62-300x82.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-62-768x210.png 768w\" sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><\/figure>\n\n\n\n<p>In this example, the `derive()` method creates new columns by extracting values from nested objects. The syntax `customer.name:CustomerName` tells esProc to take the `name` property from the `customer` object and create a new column called `CustomerName`. This method makes it easy to work with nested JSON structures without writing complex extraction logic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-connect-to-databases-with-esproc-spl\">How to connect to databases with esProc SPL<\/h2>\n\n\n\n<p>One of esProc SPL&#8217;s strengths is its ability to connect directly to various databases. This capability is built into the language, eliminating the need for additional database connector libraries.<\/p>\n\n\n\n<p>To connect to a database in the esProc IDE, you first need to configure a database connection. Click on &#8220;Tools&#8221; in the top menu, then select &#8220;Database Connection.&#8221; In the dialog that appears, click &#8220;New&#8221; to create a connection. You&#8217;ll need to provide details such as the database type, host, port, username, and password. After saving your connection, you can use it in your scripts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-do-you-query-a-database-in-esproc-spl\">How do you query a database in esProc SPL?<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>&nbsp;<\/td><td>A<\/td><td>&nbsp;<\/td><\/tr><tr><td>1<\/td><td><code>&nbsp; = connect(\"SalesDB\")&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Connect to a configured database<\/td><\/tr><tr><td>2<\/td><td>&nbsp;<code> = A1.query(\"SELECT * FROM sales WHERE region = 'West' LIMIT 5\")&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Execute a SQL query &nbsp;<\/td><\/tr><tr><td>3<\/td><td><code>&nbsp; = \"Number of rows: \" + A2.len()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Display information about the result set<\/td><\/tr><tr><td>4<\/td><td><code>= \"Number of columns: \" + A2.fno()<\/code><\/td><td>&nbsp;<\/td><\/tr><tr><td>5<\/td><td><code>&nbsp; &nbsp;= A1.close()&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Close the connection<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>When you run this code, esProc will connect to your database, execute the SQL query, and store the results in cell A2. The output will show a table with five rows containing sales data from \u201cwest\u201d region, the number of rows retrieved and the number of columns in the dataset. esProc has retrieved the data and converted it into a cellset (esProc&#8217;s equivalent of a <a href=\"https:\/\/www.databricks.com\/glossary\/pandas-dataframe\" target=\"_blank\" rel=\"noreferrer noopener\">DataFrame<\/a>), which you can now analyze using SPL&#8217;s data manipulation capabilities. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-do-you-query-a-database-in-python\">How do you query a database in Python?<\/h3>\n\n\n\n<p>In Python, you would typically use a combination of libraries like <a href=\"https:\/\/www.sqlalchemy.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQLAlchemy<\/a> or a database-specific connector along with pandas:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">import pandas as pd\nimport mysql.connector\n\n# Connect to the database\nconn = mysql.connector.connect(\n    host=\"localhost\",\n    user=\"username\",\n    password=\"password\",\n    database=\"mydatabase\"\n)\n\n# Execute a query and load results into a DataFrame\nquery = \"SELECT * FROM customers WHERE region = 'West' LIMIT 5\"\ndf = pd.read_sql(query, conn)\n\n# Display the results\nprint(df)\n\n# Close the connection\nconn.close()<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-does-esproc-spl-simplify-the-process-of-querying-a-database\">How does esProc SPL simplify the process of querying a database?<\/h3>\n\n\n\n<p>esProc simplifies this process by handling the connection and data retrieval in a more integrated way. You don&#8217;t need to import multiple libraries or write boilerplate connection code \u2013 just use the `connect()` function with your pre-configured connection name. esProc also makes it easy to work with stored procedures:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>&nbsp;<\/td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A<\/td><td>&nbsp;<\/td><\/tr><tr><td>1<\/td><td>&nbsp; &nbsp;<code>= connect(\"SalesDB\")&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Connect to the database &nbsp;<\/td><\/tr><tr><td>2<\/td><td><code>&nbsp; = A1.call(\"GetCustomerOrders\", [101])&nbsp;&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Call a stored procedure with parameters &nbsp;<\/td><\/tr><tr><td>3<\/td><td><code>&nbsp; &nbsp;= A2.fetch(5)&nbsp;<\/code><\/td><td>&nbsp; Fetch and display the first 5 results &nbsp;<\/td><\/tr><tr><td>4<\/td><td><code>&nbsp; = A1.close()&nbsp;&nbsp;&nbsp; Close the connection &nbsp;<\/code><\/td><td>&nbsp; Close the connection<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The output (A3) shows the first five orders for customer 101, retrieved by calling the `GetCustomerOrders` stored procedure. The `call()` method takes the procedure name as the first parameter and an array of parameter values as the second parameter.<\/p>\n\n\n\n<p>One of the advantages of using esProc for database operations is that you can seamlessly combine SQL queries with SPL&#8217;s data manipulation capabilities. For example, you can retrieve data from a database and then perform additional transformations that might be difficult or verbose to express in SQL:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>&nbsp;<\/td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A<\/td><td>&nbsp;<\/td><\/tr><tr><td>1<\/td><td><code>= connect(\"SalesDB\")<\/code><\/td><td>&nbsp;<\/td><\/tr><tr><td>2<\/td><td><code>= A1.query(\"SELECT product, category, sale_date, amount FROM sales WHERE sale_date &gt;= '2023-01-01'\")&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/td><td>Retrieve sales data &nbsp;<\/td><\/tr><tr><td>3<\/td><td><code>&nbsp; &nbsp;= A2.derive(month(sale_date):Month)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/td><td>Extract month from sale_date<\/td><\/tr><tr><td>4<\/td><td><code>&nbsp;= A3.groups(category, Month; sum(amount):MonthlySales)&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Group by category and month, summing sales amounts<\/td><\/tr><tr><td>5<\/td><td><code>&nbsp; = A4.pivot(category, Month; MonthlySales)&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Pivot the data to display monthly sales per category &nbsp;<\/td><\/tr><tr><td>6<\/td><td><code>&nbsp; &nbsp;= A5.fetch()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/td><td>&nbsp; Fetch and display results<\/td><\/tr><tr><td>7<\/td><td><code>&nbsp; &nbsp;= A1.close() &nbsp;<\/code><\/td><td>&nbsp; Close the connection<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The output (A6) will be a pivot table showing total monthly sales per category. This example demonstrates how you can combine SQL and SPL to create a powerful data analysis workflow. First, you retrieve the raw sales data from the database using SQL. Then, you use SPL to extract the month from the sale date, group the data by category and month, calculate the sum of sales for each group and, finally, create a pivot table that shows monthly sales for each category. The result is a concise summary that would be much more verbose to create using SQL alone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-comparing-the-setup-process-python-vs-spl\">Comparing the setup process: Python vs SPL<\/h2>\n\n\n\n<p>When you&#8217;re starting a new data analysis project, the initial setup can significantly impact your productivity and experience. Python and esProc SPL take fundamentally different approaches to this process, each with its own advantages and considerations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-installation\">Installation<\/h3>\n\n\n\n<p>The installation process is where you&#8217;ll notice the first major difference between Python and esProc SPL. With Python, you&#8217;re embarking on a multi-step journey. First, you need to download and install the Python interpreter itself. A typical Python data analysis setup requires installing multiple packages:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \"># Installing essential Python data analysis packages\npip install pandas numpy matplotlib seaborn scikit-learn jupyter\n<\/pre><\/div>\n\n\n\n<p>This command alone brings in six different packages, each with its own dependencies. While this approach gives you flexibility to install only what you need, it also requires you to know what you need in advance.<\/p>\n\n\n\n<p>In contrast, esProc SPL takes an all-in-one approach. You download a single package that includes the runtime environment, development IDE, and all the core functionality needed for data analysis. There&#8217;s no separate package manager to learn, no dependencies to resolve, and no version conflicts to troubleshoot. You simply download, extract, and run.<\/p>\n\n\n\n<p>The esProc installation process looks more like this:<\/p>\n\n\n\n<p>1. Download the esProc package for your operating system<br><\/p>\n\n\n\n<p>2. Extract the files to a location of your choice<br><\/p>\n\n\n\n<p>3. Run the executable<\/p>\n\n\n\n<p>It gets you up and running quickly, especially if you&#8217;re new to data analysis or don&#8217;t want to spend time configuring a development environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-environment-management-simplicity-vs-flexibility\">Environment management: simplicity vs. flexibility<\/h3>\n\n\n\n<p>Python&#8217;s ecosystem has evolved to address the challenges of managing dependencies across different projects. Tools like virtualenv, venv, and conda environments allow you to create isolated environments with specific package versions for each project. This approach prevents conflicts between projects that might require different versions of the same library. Setting up a Python virtual environment typically involves commands like:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \"># Creating and activating a virtual environment\npython -m venv myproject_env\nsource myproject_env\/bin\/activate  # On Windows: myproject_env\\Scripts\\activate\n\n# Installing project-specific packages\npip install pandas==1.4.2 matplotlib==3.5.1\n<\/pre><\/div>\n\n\n\n<p>You&#8217;ll need to activate this environment each time you work on the project, and you might maintain a requirements.txt file to track dependencies. While this system offers excellent flexibility for complex projects, it adds another layer of complexity to manage.<\/p>\n\n\n\n<p>esProc SPL takes a different approach by eliminating the need for environment management altogether. Since all functionality is built into the core product, there are no external dependencies to manage. You don&#8217;t need to create or activate environments, install packages, or track dependency versions. This approach sacrifices some flexibility but gains simplicity and consistency.<\/p>\n\n\n\n<p>When you open the esProc IDE, you&#8217;re immediately ready to start working with all the available features. This consistency means you don&#8217;t have to worry about whether you&#8217;ve activated the right environment or installed the correct package versions.<\/p>\n\n\n\n<section id=\"my-first-block-block_696968f3364830732bcfa775c5b17bc5\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Enjoying this article? Subscribe to the Simple Talk newsletter<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            Get selected articles, event information, podcasts and other industry content delivered straight to your inbox.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/subscribe\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Subscribe now: Enjoying this article? Subscribe to the Simple Talk newsletter\">Subscribe now<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-development-environment-integrated-vs-modular\">Development environment: integrated vs. modular<\/h3>\n\n\n\n<p>The development environment is another area where Python and esProc SPL differ significantly. With Python, you have a wealth of options for your development environment. You might use a general-purpose IDE like <a href=\"https:\/\/www.jetbrains.com\/pycharm\/\" target=\"_blank\" rel=\"noreferrer noopener\">PyCharm<\/a> or <a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">VS Code<\/a>, a notebook interface like <a href=\"https:\/\/jupyter.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jupyter<\/a>, or even a simple text editor with a terminal. <\/p>\n\n\n\n<p>Each option has its own setup process, configuration options, and learning curve. You&#8217;ll likely spend time customizing your environment with extensions, themes, and settings to suit your preferences. A typical Python data analysis workflow might involve:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Writing code in an IDE or text editor<br><br><\/li>\n\n\n\n<li>Running scripts in a terminal or within the IDE<br><br><\/li>\n\n\n\n<li>Visualizing results in a separate window or notebook cell<br><br><\/li>\n\n\n\n<li>Using additional tools for debugging and profiling<\/li>\n<\/ul>\n<\/div>\n\n\n<p>The modular approach gives you tremendous flexibility but requires you to piece together different components and learn how they interact.<\/p>\n\n\n\n<p>esProc SPL, on the other hand, provides an integrated development environment specifically designed for data analysis. The IDE includes:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>A code editor with syntax highlighting and auto-completion<br><br><\/li>\n\n\n\n<li>An integrated execution environment that shows results directly in the IDE<br><br><\/li>\n\n\n\n<li>A data browser for exploring datasets<br><br><\/li>\n\n\n\n<li>Built-in visualization capabilities<br><br><\/li>\n\n\n\n<li>Debugging and profiling tools<\/li>\n<\/ul>\n<\/div>\n\n\n<p>This integrated approach means you don&#8217;t need to switch between different tools or windows during your workflow. You write code, execute it, and see the results all in the same interface. For data analysis tasks, this can lead to a more streamlined and focused experience.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-project-structure-and-organization\">Project structure and organization<\/h3>\n\n\n\n<p>How you organize your data analysis projects differs between Python and esProc SPL. In Python, you&#8217;ll typically create a project directory with multiple files and subdirectories. A common structure might include:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"330\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-63.png\" alt=\"An image showing what a common project directory structure in Python might include.\" class=\"wp-image-108888\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-63.png 825w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-63-300x120.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/image-63-768x307.png 768w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/figure>\n\n\n\n<p>You&#8217;ll need to manage imports between files, ensure proper path handling for data files, and potentially create package structures for larger projects. This flexibility allows for complex, well-organized projects but requires more upfront planning and maintenance.<\/p>\n\n\n\n<p>esProc SPL takes a more straightforward approach to project organization. Projects in esProc are collections of SPL scripts, with each script typically focused on a specific analysis task. The IDE provides project management features that allow you to organize related scripts together. Data connections and common settings are managed centrally, reducing the need for configuration in individual scripts.<\/p>\n\n\n\n<p>This approach simplifies project organization, especially for smaller to medium-sized data analysis tasks. You can focus more on the analysis itself and less on managing project structure and dependencies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-learning-curve-considerations\">Learning curve considerations<\/h3>\n\n\n\n<p>The learning curve is an important factor to consider when choosing a data analysis environment. Python&#8217;s learning curve for data analysis is relatively gentle at first but steepens as you delve deeper. You start by learning the Python language itself, then add pandas for data manipulation, <a href=\"https:\/\/matplotlib.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">matplotlib<\/a> or <a href=\"https:\/\/seaborn.pydata.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">seaborn<\/a> for visualization, and potentially <a href=\"https:\/\/scikit-learn.org\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">scikit-learn<\/a> for machine learning. Each library has its own concepts, syntax, and best practices to learn. The advantage is that you can learn incrementally, adding new libraries as you need them.<\/p>\n\n\n\n<p>The initial curve when learning esProc SPL, on the other hand, might be slightly steeper as you learn the SPL syntax and concepts, which differ from traditional programming languages. However, the curve tends to flatten out more quickly because all functionality is integrated into a single, consistent language. You don&#8217;t need to learn different syntaxes for different tasks: the same SPL concepts apply whether you&#8217;re filtering data, performing aggregations, or creating visualizations.<\/p>\n\n\n\n<p>For someone new to programming entirely, Python might be more accessible due to its widespread use and abundant learning resources. For someone with SQL experience or focused specifically on data analysis tasks, SPL&#8217;s data-oriented approach might feel more intuitive.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-maintenance-and-updates\">Maintenance and updates<\/h3>\n\n\n\n<p>Maintaining your data analysis environment over time is another consideration. With Python, updates can be a complex process. You need to manage updates to Python itself, your IDE, and all the libraries you use. Updating one package might break dependencies with others. This complexity is why many Python users rely heavily on virtual environments and pinned dependency versions. Updating a package in Python involves:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">pip install --upgrade pandas<\/pre><\/div>\n\n\n\n<p>&#8230;but you might need to update multiple packages and resolve any conflicts that arise. esProc SPL, meanwhile, simplifies this process with its all-in-one approach. Updates are released as complete packages, ensuring that all components work together seamlessly. You don&#8217;t need to worry about compatibility between different components or libraries. <\/p>\n\n\n\n<p>When a new version is released, you simply download and install it, replacing your previous installation. This approach sacrifices the ability to update individual components independently but gains consistency and reliability. For production environments where stability is crucial, this can be a significant advantage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-collaboration-and-sharing\">Collaboration and sharing<\/h3>\n\n\n\n<p>How easily you can share your work with colleagues is another important aspect of the setup process. In Python, this typically involves sharing your code files along with a requirements.txt file or environment.yml file that lists all dependencies. Your colleagues then need to recreate your environment to run your code. This process can be streamlined with tools like Docker, but adds another layer of complexity to the setup.<\/p>\n\n\n\n<p>esProc SPL simplifies collaboration by eliminating dependency management. Since all functionality is built-in, you only need to share your SPL scripts &#8211; as long as your colleagues have esProc installed, they can run your scripts without any additional setup. This can be particularly valuable in organizations where not everyone has the technical expertise to manage Python environments.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-python-and-esproc-spl-setup-process-compared\">The Python and esProc SPL setup process, compared<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Aspect<\/strong><\/td><td><strong>Python<\/strong><\/td><td><strong>esProc SPL<\/strong><\/td><\/tr><tr><td><a><\/a><a><\/a>Installation Process<\/td><td>Multi-step: Install Python, then use pip\/conda to install packages<\/td><td>Single-step: Download and extract the complete package<\/td><\/tr><tr><td>Components Required<\/td><td>Python interpreter, package manager, multiple libraries (pandas, numpy, matplotlib, etc.), IDE or editor<\/td><td>All-in-one package including runtime, IDE, and all functionality<\/td><\/tr><tr><td>Environment Management<\/td><td>Virtual environments (venv, conda) needed to manage dependencies<\/td><td>No environment management needed; all functionality built-in<\/td><\/tr><tr><td>Dependency Management<\/td><td>Manual tracking via requirements.txt or environment.yml<\/td><td>No external dependencies to manage<\/td><\/tr><tr><td>IDE Setup<\/td><td>Multiple options (PyCharm, VS Code, Jupyter); requires separate installation and configuration<\/td><td>Integrated IDE included in the package<\/td><\/tr><tr><td>Update Process<\/td><td>Update Python and each package separately; potential compatibility issues<\/td><td>Single update for the entire system; guaranteed compatibility<\/td><\/tr><tr><td>Initial Setup Time<\/td><td>20-40 minutes for a complete environment, depending on your internet connection<\/td><td>5-10 minutes, depending on your internet connection<\/td><\/tr><tr><td>Learning Curve<\/td><td>Gradual but extends to multiple libraries with different syntaxes<\/td><td>Initially steeper but more consistent across all functionality<\/td><\/tr><tr><td>Project Organization<\/td><td>Flexible but requires manual structure; multiple files and directories<\/td><td>Simplified project management within the IDE<\/td><\/tr><tr><td>Collaboration<\/td><td>Requires sharing code and dependency specifications<\/td><td>Only requires sharing SPL scripts<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The best choice depends on your specific needs, technical comfort level, and the types of data analysis tasks you perform most frequently. Many data professionals find value in knowing both approaches, using Python for its extensive ecosystem and esProc SPL for its efficiency with structured data processing tasks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion-amp-next-steps\">Conclusion &amp; Next Steps<\/h2>\n\n\n\n<p>In this first article of our <a href=\"https:\/\/www.red-gate.com\/simple-talk\/collections\/moving-from-python-to-esproc-spl\/\" target=\"_blank\" rel=\"noreferrer noopener\">&#8220;Moving from Python to esProc SPL&#8221;<\/a> series, you&#8217;ve learned how to set up esProc SPL for data analysis, explored its IDE, and written your first SPL script. You&#8217;ve seen how SPL&#8217;s approach differs from Python&#8217;s, particularly in its integrated environment and data-flow oriented syntax.<\/p>\n\n\n\n<p>esProc SPL offers a compelling alternative to Python for structured data processing tasks, with its concise syntax and built-in optimization for data operations. While it&#8217;s not a replacement for Python in all scenarios, it can be a powerful addition to your data analysis toolkit, especially for complex data transformations and SQL-like operations on files.<\/p>\n\n\n\n<p>In the <a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/syntax-and-data-structures-in-esproc-spl-a-complete-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">next article of this series<\/a>, we&#8217;ll learn esProc SPL&#8217;s syntax and data structures, exploring how its table sequence compares to Python&#8217;s DataFrame and how to leverage SPL&#8217;s unique features for efficient data manipulation. You&#8217;ll learn about variables, data types, control structures, and functions in SPL, building a solid foundation for more advanced data analysis techniques.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a>Further Reading<\/h2>\n\n\n\n<p>To deepen your understanding of esProc SPL and data analysis in general, here are some valuable resources:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/blog.esproc.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">esProc official documentation<\/a> &#8211; comprehensive reference for SPL syntax and functions.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/esproc-spl-and-sql-complimentary-but-different-technologies\/\" target=\"_blank\" rel=\"noreferrer noopener\">esProc SPL and SQL<\/a> &#8211; detailed comparison of approaches.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.polymersearch.com\/data-analysis-guide\/fundamentals-of-data-analysis#:~:text=Data%20analysis%20involves%20collecting%2C%20cleaning,(BI)%20tools%20and%20techniques.\" target=\"_blank\" rel=\"noreferrer noopener\">Fundamentals of Data Analysis<\/a> &#8211; data analysis resource.<\/li>\n<\/ul>\n<\/div>\n\n\n<section id=\"faq\" class=\"faq-block my-5xl\">\n    <h2>FAQs: Introduction to esProc SPL<\/h2>\n\n                        <h3 class=\"mt-4xl\">1. What is esProc SPL, and how is it different to Python?<\/h3>\n            <div class=\"faq-answer\">\n                <p>esProc SPL is a data processing language optimized for structured data. Unlike Python, which relies on Pandas for data analysis, esProc SPL has built-in capabilities for handling structured data efficiently.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">2. How do I install esProc SPL on Windows\/macOS\/Linux?<\/h3>\n            <div class=\"faq-answer\">\n                <p>You can download esProc SPL from the <a href=\"https:\/\/www.esproc.com\/download-desktop\/\" target=\"_blank\" rel=\"noopener\">esProc official website<\/a> and follow the installation steps outlined in this guide.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">3. Does esProc SPL work with CSV and databases?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Yes, esProc SPL natively supports CSV, JSON, and database connections, making importing and processing data easy.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">4. Is esProc SPL beginner-friendly compared to Python?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Yes! If you&#8217;re familiar with SQL or spreadsheet-style data manipulation, esProc SPL\u2019s syntax will feel intuitive and easy to learn.<\/p>\n            <\/div>\n            <\/section>\n\n\n\n<section id=\"articles-list-block_9cf8627fd25acfb4f059272c9cf604b5\" class=\"articles-list my-5xl\">\n    <div class=\"grid gap-3xl\">\n        <div class=\"@container\">\n    <article class=\"flex gap-2xl items-center flex-col @md:flex-row-reverse\">\n        <div class=\"w-full @md:w-1\/3 flex items-center justify-center peer\">\n            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/how-to-handle-large-datasets-and-parallel-processing-in-esproc-spl\/\" aria-label=\"How to handle large datasets and parallel processing in esProc SPL\" class=\"no-underline relative aspect-3\/2 bg-gray-100 border border-gray-100 dark:border-gray-800 flex items-center justify-center flex-col gap-md w-full p-md\">\n\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-1024x683.jpg\" class=\"object-cover absolute inset-0 w-full h-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-1024x683.jpg 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-300x200.jpg 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-768x512.jpg 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-1536x1024.jpg 1536w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-2048x1365.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t<\/a>        <\/div>\n        <div class=\"w-full @md:w-2\/3 overflow-auto group\/content-text\">\n            \n<div class=\"block mb-md align-middle\">\n            \n        <a\n        href=\"https:\/\/www.red-gate.com\/simple-talk\/author\/chisomkanu\/\"\n        class=\"group\/author inline align-middle no-style min-w-fit\"\n        rel=\"author\"\n    >\n        <img decoding=\"async\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/06\/chisom-150x150.jpg\"\n            alt=\"Image of author: Chisom Kanu\" \n            class=\"rounded-full align-middle w-6 h-6 duration-200 inline-block object-cover\"\/>\n        <span class=\"group-hover\/author:text-brand-600 peer\/ftr-image:text-brand-600 group-hover\/author:dark:text-brand-400 peer\/ftr-image:dark:text-brand-400 group-hover\/author:underline min-w-fit align-middle duration-200\">Chisom Kanu<\/span>\n    <\/a>\n\n        <span class=\"card__categories align-middle\">\n                                                        <span class=\"text-gray-600 align-middle dark:text-gray-400\">in<\/span>\n                    <a\n                    class=\"inline align-middle no-underline hover:text-brand-600 hover:dark:text-brand-400 hover:underline\"\n                    href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/\">\n                            Development                    <\/a>\n                                        <\/span>\n<\/div>\n<a class=\"no-underline group\/content-text-lower\" href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/how-to-handle-large-datasets-and-parallel-processing-in-esproc-spl\/ \">\n    <div>\n        <h1 class=\"\n            duration-200 mt-0 mb-1 text-xl\n            \n            peer-hover:group-[]\/content-text:text-brand-600\n            group-hover\/content-text-lower:text-brand-600\n\n            peer-hover:group-[]\/content-text:dark:text-brand-400\n            group-hover\/content-text-lower:dark:text-brand-400\n            \n            peer-hover:group-[]\/content-text:underline\n            group-hover\/content-text-lower:underline\n            \n        \">\n            How to handle large datasets and parallel processing in esProc SPL        <\/h1>\n                    <p class=\"mb-0\">\n                Learn how esProc SPL handles large-scale data processing with efficient memory management, cursor-based processing, and parallel execution.&hellip;            <\/p>\n            <\/div>\n            <div class=\"flex items-center gap-1 mt-md\">\n            <time>22 April 2026<\/time>\n            <span class=\"w-1 h-1 bg-current\tinline-block my-auto rounded-full\"><\/span>\n            <span>22 min read<\/span>\n                            <span class=\"hidden @lg:inline-block w-1 h-1 bg-current rounded-full\"><\/span>\n                <span class=\"hidden @lg:inline-flex\"><span class=\"inline-flex items-center gap-2\"><span class=\"inline-flex items-center gap-1\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYYAAAGGCAMAAABIXtbXAAADAFBMVEVHcEz\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AQH\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AADxAADaAADBAAC4AAChAACbAACYAACvAADRAADsAAD8AADvAADHAACnAACEAAB7AAB6AAB4AADmAAD9AADdAADfAAD1AACRAAC7AADjAADzAADUAACHAAC+AADXAAD4AADoAACkAAB5AACeAACUAADEAAD+AAB2AABzAAB+AACsAACBAACLAAB3AADOAABxAADJAACOAADhAADGAAC0AABvAADLAABrAABkAAD\/JCT\/amr\/g4P\/gID\/CAj\/ZGT\/dnb\/SUn\/Q0P\/k5P\/5+f\/\/\/\/\/9vb\/uLj\/pKT\/8PD\/x8f\/cnL\/2tr\/\/f3\/2Nj\/FBT\/xcX\/\/v7\/qKj\/hYX\/+Pj\/+\/v\/zMz\/Pz\/\/iYn\/8\/P\/vr7\/U1P\/4OD\/0ND\/Rkb\/3t7\/1tb\/Ojr\/6en\/7e3\/jo7\/3Nz\/Njb\/Tk7\/Vlb\/5OT\/n5\/\/MjL\/wcH\/HBz\/W1v\/q6v\/Dg7\/m5v\/rq7\/sbH\/w8P\/YGD\/zs7\/4uL\/tLT\/Kir\/enr\/1NT\/0tL\/u7v\/oaH\/bGz\/l5f\/6+v\/fX3\/AAD\/AACzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6\/v7\/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8\/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39\/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+\/w8PDx8fHy8vLz8\/P09PT19fX29vb39\/f4+Pj5+fn6+vr7+\/v8\/Pz9\/f3+\/v7\/\/\/+gwrn8AAAAs3RSTlMABypEQCECO3eBfaS9wNHz\/+zFt5V\/Zw0ahv\/wsi\/L94xaS3Cs42A2E5r83ddS\/f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/nurEVaX8AABsWSURBVHic7Z33XxRHH4AFEUFEV0QUVBBQsEZ68zgOkA4nSznujiKIyYs16qmIJWgQxG5Efe0NJW9iYjR\/4bt3tCvbZnZ25rvHPr\/lE7nZnWenf2dm2TIjEhG5PEqc5SuiWT9ceBIZFbUyJjZ2Vdzq+PjVa9Zy6liXEB8fvz5xVeyGpJVRKzeyfglDEr1p+fKY2GQhI1NU5roym+PjtyTHJi1fbipRYOPW5UmxiQmpacTyXpx1qeu3xaZHrWD9vtCIzMhM3q66viHHjvi4mKzsnaxfnzmbsjN3rd+xm3r+B7I2dUtMUvaSrKxWRK3anso6\/wNIWbd6W2bUkikaERlJiQms81yaHQnJ6ZERrDNJVzYu37B9D+t8VkNaamLW1nB0sTE7KW4v69xFY3dqYvom1vlGkJ37kuPpd4PIsG5LZjgUi037EveCaokxWLc6NtvAKnZmJO4xuoJ51q5etZJ1fuIQFbsmXBTMk7YlK5J1tqKwKT1O7wkJRuzem5zBOnfVsSIz9QfWuaUnKevisoAP8qIjYwzWK8VkfRLYrmzE1lhDjM0IEZ8EcBYqekXMGtYZQ5u09emwTOzMimedJ2xYm7gSyogieusuo46RSbA3BkIzsTNryVVGwaTFZTOOQ9iauIN1JkBg95oshnXT1u1hOkrDYE8Mm7Xt6H2p5OImwoF1ifRFRKevMSUEs3kXZRFR8eE2b0eGzdsojiQiTQmSbI6l1GvaGa7Tp2RI2ZNOQUJE5mbWLwqd3fHZelvI3hvWs9iESEvWtYnYuM1sFFSRsidKRw0bTAuqMTWAwNQAAlMDCEwNIDA1gMDUAAJTAwhMDSAwNYDA1AACUwMITA0gMDWAwNQAAlMDCEwNIDA1gMDUAAJTAwhMDSAwNYDA1AAC42jYn5Obl1\/go7Aot7iklOivM8YYGsoOWMqtFQHYyvNzK4kloIaqkmofB0vI\/7YBNNTk1laIY62tqyeThgINjXn5TbbFdMvzm1vsJBOArqHqUKtNQoIX3tqWo3ftVFlXaxVJ2treUdJJKg3YGqoq8x0yEmapbSSQD1LUHJAqit6PoPAAoW8AsobOktauwPd2+j5LpzPw67QW6tVIlNU1yZVFQUR5B5HKCbAGe66Dl8sCPxdOF9Gaeo6GunLZB5gV4W4mkDZYDZ2V+V2KebCopPaQ9rwI4kC3urR7uqs1V01QNZS2uOWrg2CcvVqzIpD9bWLtsjh9Rfs1pgZUg\/1wn3J9EIjVRazfIlDchJK2o39AW3IwNdiPIFsQsFRpyws\/Bp1oSdvcvZpaCJAa7B04Fip4C6HuY6dLfYU0n3bfES0eIGqw52JZEL7JViIdpioLRtp8n5auK0ANpXhlwYuDROex1IKVPN+Xi584QA29VrQ+kj99jZrrJbvs7ImsB\/yPAJ6GnH7l+QtpHFqnP+112MnbrNidZnAaSix9GixU9LQ34GaFj9JGDck7mlowkwWnAbd5nufoAS3NQ2eJU0vyXW2Ys1vQNLR0a6mSKrw1tJZ5vob2Hk2Jd9XhtU3ANNQUHdVmQfgiXfjVkr1YY\/LCMA4rYWAafkScSRKBP4pfHMps2mpE7GoJloYybe3zXE5YcCfa7HWayyLv6MBJGZaGH8s1FwZvccCdZyvp0VoYcIsDKA32IgKFQegs5eG1DjXaC4PwEfQ0YyQNSkNLrcZu0iw2J94aUIn8ap9KugowokVAaaiTaSH5pra84pxD3v5g6aGDvYP5MqvEP7XgdBvth3+STNza7+poHCjzJZ5TnNfWJP2gNjdG6wBJQ4NFatnT7TrcELyoU1XSUWAVzw281bCyQvGy2NM92FIT9G87Sw7nuyUetg9jYRyShhbx2SRrq+QUQcOBAjFzPeU4tVLlTyJSeefggFSu9raKLks42quR04akIVds0OAclP2ySwdaRYrEfzCq55rm0Aa6p78juBwEsF9slY63ojfSkDSE9pN4t3Knp7OkLaQQ\/YSxBFPSFlyweKfyymZDnjvkK+hzIScOSENIdvJOV5maPyytDm6u+9T9YQCVzqAfsRapcllTFDwb6ChAHjoA0pAT1F219aueNrYPBv5pVwH6skP9fwK\/ge5KtREGLe2BGnr6kcM5AWlo7Pef3RSKAkJ3p2qgPCAjypG\/R3tHQHfVhtLdsQcWCN6J3DgA0tDs\/y628ly0sKMG\/5BfmxO5jS5z+bdM7sNowTaH\/atFnh9ETR2ohp4m5AnjgKiW\/xxE\/fOSVj8N7nrU0LN6\/0FHF3IbDUjDIM8vWihGfRGBIqsGDZV+603oVZrgwW8E42hDHT4C0uBaeI+ebhwLggenBg3lCy1TE9aUVOVih9eB3EOAqMHRjbtxZD7819GN\/D0vtg3lmPPkiyHohq6U8uaGw7gLiQKlhbMejsoPvUX\/tHGup1SOvXnoYOGsB1s58uQeIA1zvQ3ecQT1JRYp8fWXHP0Ykxkl7b5MdOMsF8zR0tQzWycZf\/jGd9VpiXApHXTzfXiroA3eyZRa9Gk5P3wBhw6MmARAGriBNr6Ct2mIBGVPr9PhHMRY+4Okgauprx6QndGEj70eq5sFSsPSxdQAAlMDCEwNIDA1gMDUAAJTAwhMDSAwNYDA1AACUwMITA0gMDWAwNQAAlMDCEwNIDA1gMDUAAJTAwhMDSAwNYDA1AACUwMITA3kqKrPq\/XG4VqbLMWIIWNgNJTm1LV6Dy7hrbWDdG8pIUWJZfGwB97tQnoJIBoq8\/wOh7dZsQ7DYUxl4IZe3j2IcGIECA2ldYGbi3G3mbAk9Cgoa756DxA0lOYHH3rQp25LMiSOhB5x4M5T\/dcQNHSEbLTH2\/vGkrLgi1e81Kr+cwgaLKEHT\/RZtB2nSp0OkfM++G7Vfw5BQ2hpwDuUiCElYlevOC2q\/x6ChnqRQ6K68nW45E4\/ckO\/JKGvpP5TgqChtF\/sHXLxMoQJB9tFToLim9Rv4IKggRM7HsrRjry1mR1+O+v9NPQbq8MqXqQrirByhAUt\/WJHSltb1f8CCA3VYicI2owzhmsVs4BUrYLQUFUrdoqko80gY7jDoodg8t0Ie3tBaOBCDujyvYcT+TwcJpSJn3Jva0f4DRgaikXPNbXVarxNjQ6Dolc+8G6UjwiGhpp20bNtra0kb9TTiWLxc3n5bpSbTWBo4FrF3sR7\/yxyrtCmqkD8SF5bO8pGeyAaOsTvorX1g18BEq+SvJf2ovwKEA0SzVyFtU3vu9E1ItrX9n5AaGdCAdHAFYkft81rOVeHAqVSd6v3FCL1tqFoaOwWP4Ceb8I4GokeLokrXHl3HdLvQNFgL5C4usHaDngQlyN1vbqtH+1cJigauGaReSUfaG0dVcok71fvUb\/U4AOMhupaqRvX3GDnlkLW0BcKA2pPG4wGziV58V0T0F5rs+St0o4CxGPm4Ggo7pbyYEUaCdGis1rSAu9Ea6AhabCLLefO4SJ3PT0xGqQulcFZsoKjQWK+ePbzQjy5nAKl\/ZIWjH1UusitJIvf1wCwSb7SIumLtox9f4P43T7z4F4wqQ+lR2RuqHOgL99C0lAm0zrwTZBGcVXVMtc1OtTfwrIAJA2ioW8LJT0fjoeqerlbpR0Yi4agNIgGgi4WdSgeOktkbmCscNRi3GQPSgN3QK516INybPR+yRGOly71cdyLwNIgf1803lWfxNkvNQs5WxjaczB+E5YG+dvT+a5GAB7KZC1UdKEOoH0A01A6KHdlMwQPNXmyl0qHxSX2HNfSLfet2dysF4Ea5C3g3gECTQOX2yd3d7bNyTZ0qUG2tFZUHEW5M9APcBoqQ25IDSoPLNvp\/QoWepowLwYCp4Ertsq00kKx7zvMrN9aViRvge9rxvxG4Gmw50neJT\/7rl3NjJYfDuXLdacF+vJxF6jgaQi4T1CUoxjXEBNgoFa2p+rdVo99VxlADVyvQ66VrvBOnjHYCdRYLjd29vIT\/h1dEDU0KFRL3g7TAcoNdU1u8K3eIXShX\/e2AEQNSr2lCm\/\/3EV1p+ghS49CCa3ocWu4Mg6kBq5avrfkxVHbSG9BLvhid7EP4+hhDQUUpgb7EdlBnA+bM4\/SSQINeYoVktBvKNLSb4CpQbGHPlcgMGb20amW2MEQQFe7pmAqoBq4Q+1KzUOFNx5I\/xbCnic36TuPzanpLlGwGrhqFRWB8PpNHfq2EMVSkfOB30Pfj9qG9mA1lDYeVVEXCNRij5mUOWSR2MsTxFGtA3uwGjj7AaXRwxzWQp0Gcw2DUlHmQfRZtA7r4WpQWmDxw9mqwzKEXTLUPxhHoebJFcAauP0ycUvBIvIJr0PYc5vUpm1za+8nQNagsPgeiLW9l1xjXdZcrjphWznWDdGBgNbA7S9X012ap4nMeK6z3oWQKN91kECYM2wN8oFZofRYejWuCXU2HChU2STM4sghMckIWwPXWSax71jy4yx3VePni72xVWJrpxQ2Dan5AVyD4KEbzYPXhCUHp0zYcyxSGzulqSaz8QK6Bq5zP7IH70HfbbkDKCo6D+W2iW+Ql8VKol3wAl6DMIqS3lcjq8Jd0Jyjps22H8y1oDVB8ziJbX4xgAauRtW8jii2Jktdb72kjJLGDlc3RimYxV1PrItsBA1cTbvkpkt1OPvbLM11zQerZzlY3FyXl9+G3hIEUF5JbqBiCA3eU+C0eSCPVfsMhh8G0cANAvNgLSAatGYUDVyjxiqELKRPYzSMBq4Sv6EmDV\/eS\/TVjKSBa0Ad4eqGtnVnMQykgStthlAx8U4L+RhaI2nguOp21hKEkchh4q9lNA3cfpe6xWHd4At02W9kMA1y5\/3QkODO02dzheE0cGUu7NkHzRYKtEUjSWM8DVxno3JEqR7Y3PrtjzegBqFAqIqkIwvf06rjWXOG1MBxAwVi17joiAP9jCQUDKqBsxfTrJl6mnL1Pc\/JqBqEQXVHE6U+E28t0jti2bgaOK6mo4JCzcT3UNhYZGQNwmguT+\/RHM9bCK7uSGJsDULV1Cx5mjEJCe7BEipbu4yuwddY6ySCdzfTOpDA+Bo4rqpSjynwngKKpwaFgwZfyCPhRaGmvEM0T34NDw2cN9x1sFtj\/MYC5a5qyqfvho0GL4fy+jWbsDYVUdlfGkhYaRAoaS7U0E5Yawf1mkOVJ9w0CDS0DLZjDCes3a5eZleFh6EGLzU5zQhxqbbytsFiJocDzROmGnw05HS4auX3EfLOfksdWwM+wlnDLPaBlty6osIC\/zajR\/hPS15eYzWlUzcUCX8NhsDUAAJTAwhMDSAwNYDA1AACUwMITA0gMDWAwNQAAlMDCAypYejY8RPHjw3p9fOhnDwlJHj65xTdEjCehjNnz3l8nL+gy++LcHF4LsVLIzqZMJqGkctXPAtcvaZDCqH8MrqY5PD1M3okYSwNN4Y9AVwmnoIIF34NSHPs5jj5NIykYeKWJ4hfJwknIcLtO8Gpjt29RzoR42g4cT44OwTuE01ClJujocmOPXhINhGjaDj9SCQ3PJ7fHhNMQ5wpsXQ9YxeekEzEEBpSnk6JSvB4Ru+SSkOKZ\/8VT9lz5fkQuW6TATSkvHgpkRM0aqVj5yTTHr7xilQq4DVce31BWoLHc4dEGnI8H5ZJ\/dabp2+JpAJbQ8qTs9IfIwANAo8mXhComyBrUCgIPlhWSvNcOqW5SMDVMDQR0mFnoUGyifbnt3ca+01QNdx7P6bi9T3nP2h7fRXcV\/McnrGP01oSgalh+pOqd\/d4zh3T8vKquKzyUTx3buAnAlHDxGe1b05jFP0+ZApFklvvcSffwWl4pdQ38mf0JuZrI\/BQXa00y\/mZ37ESAabh9wtiM0eSnPsf1kujcRXliTxXPt3GSAOUht8nkSR4PFcx3hiZ02r6Sv4i\/niNnAYgDS8+\/qr8jgH89zTy++LwJ+Jjea5cRe02gdHw8BKqBI\/nT8SXxWREfZdhQcTUU6QkgGhI+YJYHXm5jPaq+LyUmN+VY+zuGYQUQGgY+oAhwTP8F3qG4vHiD4zHE0Z06ruvEDRcRK+OvFDorM5zAr1a8olQHTvCXEPKxBjWK3o+ncTPVmSu4xRXr4jH6mb9GGt4e+I3vPfzTP2tMWfRmMFoHnwMn1YjgqmGt6\/xCrvAfRoDN39kVgAV+OO2crllqeHMJexX++0smcxVz0l8D573itPg7DT8\/hX\/vf7RPyAjhJNf8J\/3\/GOFThMrDddOP8J\/q6sjRDNYJW+V1wKluSs\/wcFIw88aPi3PJ\/Q5GzK8u6L8cFKMPZYL42Cj4W\/splkAcy6ZBN8QJuFDeCkz6GeiAXeo4GVMqXEeejYy81LgwtdplWFED0\/MzGbvrZmvp+Qr8We\/aPBwVXqpkIWGsxosyLyKN0OPXTznV3HcuqBi1unJZEBVM\/rPm2\/j0l39V181PLz08gh9Ddfe4L+HMF74cnb6XkitlDJ0ZvrEh\/uhQ6zh50oWHot2FYY\/nj3+7MwLfx2\/jz87fXYGa3ZpgXMnwGi4qOlF5vn85eU8kzdl\/t3oS3kLStFghHl0HIiG5xp6GzgMX5SzMD1F92k8jyZAaPgLd24GG9kFmLu0n8bzp+jCHGUNE\/9Qf+\/RS9IWUJeZSXDpDHMNp7S1cHjIxA38Qr1sCohtFKOrYZLBW3vuSEesPGDxPKMiAZ9UNXxg8fF5ht\/B0uC5Ezp8oKnhf2pCtMkDToMntLWiqUHLRIAG4Gk4\/4ahhjeY67lakeiqM9TgefAzMw0n1QbLk0amiWbRcfMyGtxboqfhPaPCINdhva4+aJ4swZFu1DScRI4EJcUf0hqeTjF6ptGPjDTMsCoMsvHG9Ccz5giaYqGmgVlhkI03xogSJsOvgQF9tDSwmL3x8Vk+fGCSyYjSE9xi0dLAqk+iuFVUbrFCTwK70ZQ0XFO9n5Iso18ULHAnWXkIKA6UNExoiErSQOhwVQTs8FRt3PcPWKCkAW0bHyHGLqkLaBqZYvF0j\/wn+ChpYFMn3X2mxsIzNr3WgAPq6Gi4zahfqKZS+oob2q8V\/631dDRQjn9YRLmJfsfq0Tyf\/RoHOho+seqdKwbITDPqwgmc89soQ0fDFLN3VQiQ4VhN+3oCt1DS0YBy7ARpHshtejpLP1JkgV\/9CiodDWxWP+feVm47JrOZLi9+B9RR0fBMSzy6Zh5IWzjF8vvwfF5SGmRW35gt+\/hYWhpkQgJYTTjOQlvDX8z65l7gRWbMYWowNVDH1ABdw9JqG9g20Z9PSWpgEtG9+GBLSsNl6RuAmM2u+lhaGmSGb0\/YTex56I+imU5m\/PZVWgO7OCUv1DWwnNqDGafkCQwaoaNhit3L\/iN\/qgCruAwPi4nuSbzT9EjwSdYC9zO7ocM5v5VyOhqYLYJ67iqd7CV+SgAN6C+CsgoJ8Hx6oWBhSYUEsGocLqk5nfI0ow7EFH0NTPrnt+SXoRd4cWGMwdMFnKpCScMXFm206hP5rrOY0\/jsvxpFScMpJo3Dn6qi9rjHTOICAm73paSBTRCr6LkIIZz8yOLRAi9ioaWBzVzmZTU3MP3FZDtY4EljtDQw2u2jELPng8lBHox2+zCKCPpF2cI9JoF7jPa+MdoJ+mfwdvxQ2JzkwWonKJt90So0TLBYDGG2L5rNKQFQNQTvT6WngcmZGVA1BN\/EQk8DkxNkgGpgeIIMx+Ff14ANzJ5S6B4kmhrof3ejM8oaNNxTgsvNkIlfmhron7UHcxR9LvScLaoaaM\/eiJ3xGMoLypUl85MnaW8E\/6juTjLKp8OKTbDQ1UB3TnlS3Z1rHDdNc2j5SWz2nbIG7iK1k9KvqDkvg\/5jXRY9WIi2Blon1g+\/uYdggeOeUAoeAXJiPff2g\/7v+sfzaenwYSne3js+qXuwDJj7GzTeZqLMfdQrs\/14NaHvswG6zYR79XxM13e9I72fQYlvuj4YqLt9OG03XangunKMmDh\/6xs5JnMGJhMN3Ii+Sy038Cy80nA9pgrA3fvGcbd1HblexLug75iuUTzP5R6KkQZu6KyOb3wT77bKGzo+0j\/y11uz0sBxr\/ULqHyA10g\/1u2BPDPj8kmz06BjgYCm4dwppckthhq4lHs6XayBqUGvQYPSZdGMNXDcyWd39FiCANU2zLxIUU6arQaB11PkJ5neoU9leHlGvvt2ZXJchQQAGoTO64Mxsu8+9g3LAvlxw9gFtQNJABo47ukHouuQsj10OV4TXXc4r3Z7BQdEg9BaT3wmVjd9QZvi9mdkjNRDjImu7kgCRIPAPUJ7Ad88REo2EDI35o7dR51OgaNB4MxjzSE0N6fVrT9LMTShtX48f\/MG+tQiKA0CL0YmNRxD+Oap2uVnaa79rSFC4NzFaawngKZBIGX82wx6qRgd\/nAKr58a+gBDI5MYLdX9d9PK4zQJAGrw8er2ifeq9yuPXb5+DLd3JMHbh6cvPFLr4vzd5yNnNH0DUDX4ODn09PiNl3IxZsNfZk4fe6I1HSlevTg9MXNJppL8\/HFm4tTPr1SN0GQBrWGBV+PjD7+d8Of432fGnxCqhBQZejj+dOS4f\/LfXo+Pqxsfq8MYGsIeUwMITA0gMDWAwNQAAlMDCEwNIDA1gMDUAAJTAwhMDSAwNYBARw1bU39g\/XYGYXemjhqWLUv6TnASMmzZnRCpq4Vly3ZuT2P9ktBJ+a5vUZhlZarZQsiRtn0nBQsCWXvMmkkK\/eujRaKzdrB+XZik7N1HTYKXjTHfWb8yPFLWpEdTteAVkWmWiABSUvdRl+AjI8FsI+ZJSaBbHfkTvdLsvvpI2xLFpiTMsyLZrJt2bKPXO5IkIuPfpTzFsTshayNrBXNsit3LOjcY8T05km1tFEhE9q51rLOEOru3Z0ApCItERMUtqfY6IQmeg1ki0uPWss4dOvybuQlSZRRC9L64sJ9x2pJEafJOG5HJYTsJm7JuV4YhHMyyKSsMq6e0hORs1hmLTmTM6vBR8cOOXfsMVAwCiciOiQ+D7tP3xPQVrLNSKxuzM7cYd0yxe82uJMMrmCc6MmnXHtY5iszm1clGao9VsjEqc4tRXKStScxaAXpkoI2IjJg42BNQa1O3pUdGsM4nGkRvzdqweg+4edmUNXGxy8OvFlJg48qkmC17QXSk0tbvisnYyjpDmLJieWbilj2Mht3fV2+PSdq6JKogdWzKTo9JXL+GUuHYGx+XnJSxNJoALCIil6fHJq+PT9Ah878nJGyLTcpYevW\/JnZGRWWsil21fXX8v5sxMz4tNT7+31WxG7KiosK5\/0mTndlRUVErs5JjZ9mVEB9IwrYNs\/8nOWul918aaPD7f9YL1o5Jq6sYAAAAAElFTkSuQmCC\" alt=\"Like\" loading=\"lazy\" class=\"w-auto max-w-6 h-5\"><span>1<\/span><\/span><span class=\"inline-flex items-center gap-1\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYYAAAGGCAMAAABIXtbXAAADAFBMVEVHcEz\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/YGD\/oKD\/4OD\/\/\/\/\/wMD\/kJD\/EBD\/ICD\/gID\/8PD\/QED\/cHD\/0ND\/MDD\/sLD\/UFDmAADFAAC8AADeAACKAAB6AACjAADVAADuAAD3AACTAAC0AADNAACbAACCAACsAAAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4\/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5\/f3+AgICBgYGCgoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6\/v7\/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8\/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39\/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+\/w8PDx8fHy8vLz8\/P09PT19fX29vb39\/f4+Pj5+fn6+vr7+\/v8\/Pz9\/f3+\/v7\/\/\/8dMLaUAAAAEXRSTlMAMEBQgGAQkMD\/0LBw4KDwIM4SFawAABb0SURBVHic7V1rV9s4EN04Tuw87bZ0W\/raQiAQ2gL\/\/9etnZASSzN6WRqNg+6nntPYSLqa90j+55\/hYJTtMc5xTA4\/yUaxx3pemGZZnhdlWc5cMG8eXDTkLBtiprGnMlgUK6fFR7Eqy3Wej5Oo2GG68EvDC6px7IkNDUUAFsqknqwx8c5CHntKg4RnHpJCcsSo8sjCKllnV3jkYZ7MwhFtcFVbPTEiZqE+6\/BvOs7L+XFFVmU+rk2f9GQf9CyMJkX5N1Yp18us14QZIivm8rqs1mOz\/emFBw0L08kC0H6LZe1h9jwwKnD1vpiYvMFD\/KBkYTrBsyXl5CwsimKGe1RFrX+JW07JkIXRWu0FGI2QNyYmeaF1rXvNtGd6aYWzkJlQrB8hZ2SARXCbZj+3tUI9n5GhnFX5YFXTdG2xUrppLp3W\/wWYy2MzwtVAA\/Cx3QZeadzDHunWpZ8RrocoEPbeTaGc5tRZLa2RF1oTO7xcyNTUKpxirpzm2OGN+7fC7GYOtFZG7jUfjNw8G\/U0HdUSzK2jrRlUntzdr1FN000twYbBxnvoANFwHNHHu1RN02UHl9CL+pRXB8NDPx9fNU17VVfVwGucDJfRABmh7lkgUEwzs34ZpOT6sYD7v6zQd5JKHmxzSyvoJb0bPobgL3noasHttK04QCGhs3X+Czw3wga9kg5H4NvNThwg++xjgOyrqX4qlvh2sxMH4DX25gVCEXINPaC3YTgAT0zbiANgZNxTIl3wro\/mfiapMNM2KY1afrx3\/egFoO3nAl97rQGaVjaPHQAqvViuPThnNfo7IX9RYWrJfCVly9A3pDEZX3zU3iY5w63g1PQFgJvks0U8ojjUh7M0NfLfHoVhBmp2q78ie71+vKQXoOIwUq5RP2TLdXki0RXUTOVVGJCk3D\/GRhowor7s8wGSONSnDXEN5ovcsBHLCPUSEWahmcqbm\/QCzCk0U\/CyUvMqDCLP4zXsO8wLLzXs6UQZCsxPmqk8n5FCxcFMK9XSc36F4dSZy5SdTtW6b\/Kj1nRS7f\/Iy4Rdi5Q4kNEb\/aG59JhnYWiUwcuLDXqx5n2ygbWhNTwQ4ddA79+LjMtEK8nZaP8n6faKIDfTkStXIqYWvRVtU4XP8yAvQAycyYLW4kOeHYgWY8OuxAN0HUAw7Jp4qrF3mZ+hBRaDDm9ZJ\/kLoP9iXduZm4W0N3Swr9YGEAZgMfcw2Niyn+Qp6XiKynbOtkfvXJp4QgDZPnpNEDqocYVV55\/\/c7COQLSSXlSlRwLoJCfMkZ3FmYW\/PqHtmsohh++gwRlgr4g9C+\/ef7i4+PjvJ5pBwyPUugNy3o1isAd81vy\/YQVVxcKny4aDPb589Tl0FIiTp3tMMoUh\/DgI3z5etJtUSYURD6pmr3dfLl5BwgNiHHQ2uhYf8J3vgvH5+3Fx3quIQFTtKRQFtB\/fL07xwf80jEesO08nPRDmMhoBn053qUpt62sV+AQvLwR8CzATEUjkoNncsoUOEDXI+K+zPF9+4r\/UxQ\/o\/D59F1m4+C\/EVETAw9S4SnLwRjHUH+ICvUcFQlNCRduMfnyRWKDRSjU4To3FlSsyFEN9J63Q9x\/Yb9XmAZNdiIWLi0DT6QB2lTQ0xHGU\/pVX6AvKg0otYbIOs\/A90HQ6gGnQ9AVID5HQ8B5YI9SvV6glzEuCWbh4H2xCJ0CcCvVDten+8opv0CKh8oD3XyIFhk8wCzSBgxMN0s9Jwoav4CqhPEh75QWYHZN9pD3+DTWdDhAa1BngODTMPoLr9AHxl7DaIlLFlOKFA0jcVZQGdfwWiYbPsNr4iPwcFgfE7MGi9oEmpeRGg9yiREPD7CfMwyX8a1gckKFCKunDu2AzEeFCgxxEE9Ew+wR5SxcXiHkAnSVY3UIqiSrL3cIPDXQVlB+QgUBce2hucPcP4CWpciX+gfSVWNJAledu8Q3QTHD6DTokAecgZWHAA8MgQAoOjGk4SXe\/LhqsP+R+ONhAy8JAzALWuad+yHB2oQBYiEvwh3IIB2tPSRioWUAyrLY0hOhlU0HiARYHWSvBQcMH8XWkdmGG1husaSDuCJDLArBvKck6WFb8Kb6MJnI+AZIQ1iSua+mBEJ8gUEHS5rCzJNZ44UKDKFtYXB4OiL+qMbmyXSdvU5J2MKjNxV0GmwaRUmqVhDpKmnBMbiQgdZX2+E9YO1CRiEVzUGjFPAaWHAkIJCuvaeIHksg0wz3BZ1GTgL+qu6METZjoJ9ELA3YKXGNxgXNCJD0BHYgaHWyZEYpwoEMnxOUktecusJKt5jG5QSbAIRgdRHEAfaXcYF6CaSB3k9BuMe0FKbX0SIRWYmEXg8XKbpYVtGAindSR2wy10NrTb\/Jz9DZaLIqCLmupH6Rgob+EHTQImAV93hrwcymG24W4jaHfdGkA\/VWh7yaCn4QdydXGxIBNidBZL+QgQBut316Co3QZdMggsF5P7YOAh0VV+TmBYBzAguUQaEBMg8EVZrX0UATjcBmCBqrq8wkQYTCopQFNceGHK0JYQLD2MwAasKjBIAYA4mh64yAY10voNwOgAbt31uBIOGDc6Y3D1\/OgAam8GbVny4\/RG4dvtjSA8VBsE40llIzaLADrTn7WW1hAMJuh3ykmZIYE1mxrlB4CfF2Sg1enEDrtIXViH0WTh2\/YEQCj20IA40B+3NsgbhCGCb1FOEREncwA0qR7GJ7ckR+kbc9o0F2\/C6h0KTRQgnpTeA1xag\/reDbc1IAsEdccxKoZ9BtBd4JOtdBeQJzoxu6BMlTxgGUhTnYLpgFU6oInARZBhfcQl32wU0mGDg\/QWkN8i4yQ2QN3cW0g6WJ3AV0f9wwPoY3d\/1p+llQrmayeaP\/AjfJJeBGpr4TpJOOOI+AFpFpJbO2GLLS010AvUGzyIDTSmJ9kvqMBcaLUSqKBBotvUroGjInEA9cU1zO8APOTLFYSMC6EWkncwuDaSekaMJ0htgBeBh14B9g1jRZ6BXBZCbWS2GoH1d6AdA3ogLyPRQP6mQqL\/Qx9zCTciEWY2FXAqQa1klDVpusXw8qfNtodMi90eSWBBtDLBFLIcNNJx9wjZ1ZCoEZosNIqgFbyf4M1BoPLp0CRB32lTl6JLoxGL1ixsrGQmSfLdnez3KAwgGUtuDp14ix9pxMGLLlq53FCWonsoEPHvQG9Vfj2EuTikncRWEANtKWnA7BJFzr81G1gxCdHNsrn9y2v3wljBvwuOku\/H9JtdJ0Bxwsiv1zCG7iG54h\/B+rrV9pjPuhnczy8iM5Izz6\/u\/z29StWw0c\/bRehsQ0EOkBrxQ4ZQd8fXXEFIgxev57XC+g3WKzHBx0kZXJbt+ISUB6Xc2MNxC7DAxjlsdnwr57+w+RCcfSrHw4hMKTf6A\/+AFDexOrxa43OwE6kO\/makG\/O4VMOmvuhGShO9FtETpEX9Lb44qBUSS3Ie6qkEaJDc5JUSLbii4P2a0tT+pOrXaDC4Og\/QDOObQKxHukTqD4cQABcGBz3B2SkIxw50Q2J2RhRYXAeVg28LKo4oD5IFzGjB1wYnO0qFCfF3GqGH5WJygNqu9zNKphPjueJGLPQ8BDLPqABdB8nEzKI0ZwlCxbi2WlUGPpkIEBFFyl2KO2+4x3Hb8Vjy17JX8jsxxEHIx+pgxjbpUZ3RS\/pBMUhRlZf\/2klGfQGAh9lzzWDxIE+0Vq5fTJ6RKyY8A989F0yUByo\/cGV66fsp7SKCd8svRUI+GraXbawM84dUCom3Fntrz9AcSCN4VzMwitqui2Dy6wHawqKA52wOyskn2tgBHy7+DCmYIKfzEr3UUhH0FhqRSHES6MdyDJNkcv20\/UYKAQCL4T4CbRgN4wi0+pDFA4ILxD4V9B8aXDwL1j3n1nDlygckIdVowqV5M2fqcF5+Xo7gsKbKBxQB00NK2qz3vQG7BAHlfNSW3O2xzhc16FCJXmMdcE1CaiWHJMXWoTSTAqVNPXIPVzZC6WWqtyzPnpFHSbgUcQ2XhcJDk3CqKV1HYaCA0YBXDxFnO+3KlCBSxOiUzEsCS0y37sHzyV59+vhspL3VGt4EvbD9mqrFd+v9n8kBHbi\/TqBNCS08EmEwqfzn\/NBTv35m05FR0ILb0SoEsABHALYNfblta7CeUcYMi96W9VgHqQeAAufF\/MwDxQnaJD1362qrh2fIcMrkBil91Sqde+SgjPqop\/2rlRDD3SQHFZLPRuC5hNybdQd\/qTP+FXZx2AlSviP9ogeqiKeILxitHadgarNP4xKaoF4yI60V2uvmew+mE6cPG9lC1vAhC7iFriY6UUcq4yiXlorJ2Wbf9Cz\/IgUWprpRg7iGgQYlkwoW5vDnkjFPAMLCVwVbHSRDAsm4DTbEYGLrsgWMHWXyiUHm6zEdGJksZWuavgeBMQsGfgFjRhwVEUQRrkuwlazQNBOh5hW9bmO1XpSB1iukMjyUjElpWKl6OLC9gHKw3x4FBwxmhSwWKjdvKjtaYAkVmWeDUURoRhN8lJQuWoWiG7Dw6pN3fChLAYrBBCycb4+sqFmgezYAdYO8jKAVZmP2TtEjphm2UTtcBMefsS2w6QslsPXQr0QLpUkQ+2uvWmQnsBRh5DOGBncTMIbxMdPrc6KG2IyV\/aaDAHkh2R9L9ihDjZwGiLc1WF\/XhzHdFKGIRdEUQd6cfjDBiF5yF5zaSQ0zGaLIEneSPd0eCnc1MWph0dEQ9uQU\/t+bbRLL3vzIKX3yWho\/5bf+l\/EO\/56TQQqsVDS0FYB\/R1miXrTojMPoxwcNi0Ns7YIUnt5Z9z7Lt3C6XGBRfzkNDSYL+ver4x966g1D6Olqm4dg4aZByaiXxOsvSX4BPVkrUl8RaKhwbxP51p0FozTGnoKWsSjYdZWah3DCQYsmIRx2XJhmP6NSkOLhYN6YnA7ewvFoeCGgbWN9YpOw2wvFFZ5Sx6f7pghbutonC+s\/QcONLSYmzfzRL4u+xQdnTrNJg4EHMCFhhZzo2J65IvZO3hxW7NGAPqdZOJEw35iC01rCY\/v7BxR5YWqucoY3GjYY4VzETtsCwSWNOxRlflEzkCdJwuMaTigKos8e43zWAQMAcCdhhfMW9GY0n2slhoDoeHckWhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBs+4ut40uL6xeyrR4BWb2+0Rd\/cWz7Gk4abFzvap+Hj4tT3FL3ORYEfD1e\/jXG431usQGV0WGvwxfZIZDX86M\/nlshbxsBFZ2G5NFRMrGnaPwiwGJQ8PTzINt4bPcqJhJ83j6cF1TSLgj8zCdmv4LCca7uRZDEkcbuXhb58Mn+VEAzSN4YgDKAyPhg9zokG0DIMSB8gymA+fEw2\/oYnsHJeFGoCb1MA0cuBEwz00kWfXdaEFLAxbU53KiYaHXhsqLmBhMA58ONEgR6EtTK1cVOxAFra\/TZ9nRQNoHMwzAhEB+NotjLN7rGgAjcMQnNYbmAVj08CLBtg4mIt2NIDa1EafsqIBk23uVvoaEYZr4zfwogGZD\/NMq5wLe8HO+BW8aEAcDuaxNCLDxunVGTcaMCW7vbJfHDLAjsXWyqYxowHTsozVEhI\/2+0dZjRgWomxWsJUko1O4kYDqpXYqiVUJVn4SfxoALP2LX7xDOJwlWSVG+ZGAxLBbbkGcahKssuFcaNh9ozOy6b9igqYS7G1TIWxowFLz2y3TzurFaLAFa6STKvQB7CjATfS\/LzWB3ysljqUHw2okeZXicMVqG3xlh8NM1zQmZUeFBtme2f3KoY0wPXEAzhFD1eKcdomhRnSgPusrEpAiojBvnLLkAalyuUTxSnMs32FhCMNaGKpBRczrdorVumkPTjSoJ4ij2haEbdtHVwJljQoxYGFu6Ryklx6eljSgHTKHBE\/q6F0klxq5zxpUHoh26fYbqsih+EmDExpUMYO0XnQsODSSMKUBvDMBhMeVJmkFi6+HFca8KJWbB50LDglgrnSAJ454cCDjgW3qjlbGtROazQetCy4ZePZ0qCx0g0PMeKHK7XN2ro2evKlQWOlt3atD36g85GcY3zGNODl0COo80t\/tCzcOmYeGdOgiaVb0OZbdWpy6957zpkGdS55jye6nvsHvBfmL5zTjqxp0KRu9qDqqtQb5z7CyZoGTTr5Ze4759d7HkmPEi1vGhRNca94Cu8xPWiCyQN6jIM5DQ8GqmC7fdy5\/wUT3Gs9pBaWzRgdMKfByDw0AhHSQki3PMHo5bVxp0FT5\/qL22Au08ZIFHomV9jToC5MnyCMZrox0orbviVB\/jTocq2veN71+0Myboz\/dk83YQA0aJOaoYjYmQpi\/7TKAGjAzx0HJeLGnIT+16sMgQaDxObpknhp3Lg3VkdbH6mtQdBgx8P29nrX7889XJsaZk8sDIQGU7f1L+561ITuLbRRC9fk9ikGQoM1D9un53uX5bl\/thK8radq7FBosOehwd211RI9\/LHmwFdNfDA0OPHQaIxnMyp297\/N\/WLvLAyIBsMEG4TH39c3uIa6ut\/cWZnkE\/gq\/w2IBkt\/SSbjsf3KyMuXIa7af2w2z4+uBHhlYVA09OXBO\/yVwgdFw2znpL9DwWNjyLBoMCyD0cBnjWNgNJjnvUPDb9Pg4GhwdFx949ZvC+3waDBqVQmNR899agOkwahxKyy8l76HSINh11AwBKh7D5OG2VVEz\/UuQOPsQGkw6TMOg6cgx4EHS8PsJopAhBCF2ZBpMGp094zbUCfjh0yDaT+dN\/wOdpxi0DTMZveEMcRjwEOPA6fBuLexN4Lpoz0GT8PsgcJE3AY+djp8Gqy669zwtAl9xu4caGiJCKiabv+EP+h4HjS0qikQEaHV0QHnQsNM\/PK6H9wRnTQ9Ixpmsyu\/uul2s6Ma+VnR0HZ8eYvoninvkjszGhrsrj0opzsCs3yK86Nh1jLRpzDk2P3aC2dJQwvHZsjHTZR7ms6WhgYP979tLMXT3SbaVy\/PmYY9rv5s9A2Sv+4297uYozx7Gg64utls7h5F2Xh6fHzeXO97WiPjjdBwgt3NHrGH0cXbo4ElEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhYgoWEVe5bssaagYVrEniZz5BQsNMiSQOCYj4hYaAQijz1ZtqAShQPqRez5skRZk7LQICtjz5kdVmNqElpMkok4RbWMQUIiooMqn8ZiIRFxRFwSWiQbwYCEFqN17HWIitUkNgFHTJdvVjctstiL38H4LQYSVVHHXncJ0+U89rLQYsFGGwkYFW9GOa2WdezVVmG8rmKvUHisCrr8nTPOnIlBcHBAdq7aaUAcHDBanl1cN18OjIMDpuP12QjFaj3hECq7ol4uhm8pFsMUAwGjIVNR5rzi5H4YLYenoKrF8pwoOGI6zgdjtufFpI69XiExmhTMuZivz1IIAIwauWCoo6qymLwRBl4xzZZFycV2l+s8q2OvSExkk3wRUU3Ny3z5tgk4xbRhY02pqKpykdYfRZ2N87wMx0dVlkU+yc4hHKNB1hJSlKUHhTUvG9XfLH425HwEA9TZnpQDLQ0Udb754RdF++tx81gde+wm+B+k58k0Xd0UIwAAAABJRU5ErkJggg==\" alt=\"Love\" loading=\"lazy\" class=\"w-auto max-w-6 h-5\"><span>1<\/span><\/span><\/span><\/span>\n                    <\/div>\n    <\/a>        <\/div>\n    <\/article>\n<\/div>\n\n\n<div class=\"@container\">\n    <article class=\"flex gap-2xl items-center flex-col @md:flex-row-reverse\">\n        <div class=\"w-full @md:w-1\/3 flex items-center justify-center peer\">\n            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/data-manipulation-techniques-in-esproc-spl-a-complete-guide\/\" aria-label=\"Data manipulation techniques in esProc SPL: a complete guide\" class=\"no-underline relative aspect-3\/2 bg-gray-100 border border-gray-100 dark:border-gray-800 flex items-center justify-center flex-col gap-md w-full p-md\">\n\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-1024x683.jpg\" class=\"object-cover absolute inset-0 w-full h-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-1024x683.jpg 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-300x200.jpg 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-768x512.jpg 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-1536x1024.jpg 1536w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2024\/12\/shutterstock_2469017695-2048x1365.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t<\/a>        <\/div>\n        <div class=\"w-full @md:w-2\/3 overflow-auto group\/content-text\">\n            \n<div class=\"block mb-md align-middle\">\n            \n        <a\n        href=\"https:\/\/www.red-gate.com\/simple-talk\/author\/chisomkanu\/\"\n        class=\"group\/author inline align-middle no-style min-w-fit\"\n        rel=\"author\"\n    >\n        <img decoding=\"async\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/06\/chisom-150x150.jpg\"\n            alt=\"Image of author: Chisom Kanu\" \n            class=\"rounded-full align-middle w-6 h-6 duration-200 inline-block object-cover\"\/>\n        <span class=\"group-hover\/author:text-brand-600 peer\/ftr-image:text-brand-600 group-hover\/author:dark:text-brand-400 peer\/ftr-image:dark:text-brand-400 group-hover\/author:underline min-w-fit align-middle duration-200\">Chisom Kanu<\/span>\n    <\/a>\n\n        <span class=\"card__categories align-middle\">\n                                                        <span class=\"text-gray-600 align-middle dark:text-gray-400\">in<\/span>\n                    <a\n                    class=\"inline align-middle no-underline hover:text-brand-600 hover:dark:text-brand-400 hover:underline\"\n                    href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/\">\n                            Development                    <\/a>\n                                        <\/span>\n<\/div>\n<a class=\"no-underline group\/content-text-lower\" href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/data-manipulation-techniques-in-esproc-spl-a-complete-guide\/ \">\n    <div>\n        <h1 class=\"\n            duration-200 mt-0 mb-1 text-xl\n            \n            peer-hover:group-[]\/content-text:text-brand-600\n            group-hover\/content-text-lower:text-brand-600\n\n            peer-hover:group-[]\/content-text:dark:text-brand-400\n            group-hover\/content-text-lower:dark:text-brand-400\n            \n            peer-hover:group-[]\/content-text:underline\n            group-hover\/content-text-lower:underline\n            \n        \">\n            Data manipulation techniques in esProc SPL: a complete guide        <\/h1>\n                    <p class=\"mb-0\">\n                Understand data manipulation in esProc SPL. Learn how to clean, filter, merge, and reshape data efficiently compared to Python.&hellip;            <\/p>\n            <\/div>\n            <div class=\"flex items-center gap-1 mt-md\">\n            <time>14 April 2026<\/time>\n            <span class=\"w-1 h-1 bg-current\tinline-block my-auto rounded-full\"><\/span>\n            <span>22 min read<\/span>\n                            <span class=\"hidden @lg:inline-block w-1 h-1 bg-current rounded-full\"><\/span>\n                <span class=\"hidden @lg:inline-flex\"><span class=\"inline-flex items-center gap-2\"><span class=\"inline-flex items-center gap-1\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXAAAAFwCAMAAACWx9ANAAADAFBMVEVHcEz\/4jb\/4TP\/4zX\/4jX\/4zX\/4jX\/3y\/\/4zX\/3zf\/4zX\/4zP\/4jT\/4zT\/5DX\/4TX\/4zX\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD7jwP8jwH7jwP\/AAD5jwX6jwP6kAP8kAP\/AAD\/jwD7jwP6jwP\/jwD8jwL8jwL\/AAD\/AAD\/AAD\/AAD7jwP\/AAD8jwL8jwL\/AADJAADMAADKAADMAADLAADMAADLAADLAADPAADLAADMAADMAADMAADMAADPAADZAADcAADkAADZAADfAADMAADlAADyAAD5AADPAADsAAD8AADcAADVAADSAAD0xMT4iYn9Hh709PTy8vL0xcX6W1v+Dw\/z29v2p6f7TEzz5OTz5OT3mJj9Li7y8vL01dX5amrz2Nj1trbv7+\/w6urx8fHiRETz0tLw4+PRHR3v7+\/mpqby39\/VPDzx39\/t1NTODg7feXnqWQLTLS3SEgD5iAPrxMTtYwLYJAHy0tLPCQD2fgPnUQLz1dXwbALz0dHkSALbLQHVGwH009Pz1NTaWlrzdQL8PT35iwPhiIjYS0veNgHqWgLdaWnkl5f4eXnoQkLiAAD1AAA7g98\/f986hN88hd87hd88hN86g988hd88hd87hd89hN\/pAAA8hN\/1ioo8hN8\/h987hN9\/SHfDCA6NOmJXbLbw6+uoIThyU4yWMlROdcTx3d2EQ3BEfdI7g9\/vAADx8fHz6Ojy6enw7OyfKkZpXJry4+N7S36xGSrw6+vz8\/Py8vJTbLdgZKjw6+vx8fG6ERzz5+fgLi79LCzy7e3y6+vw6eny8vLz6enotbX5U1PTJibOCwv5QED9GBj8Jyf5UVH3bm78PT3z4ODy8vLy8fH3cHD8Hx\/w8PD7T0\/5ZWXx8fH9GRn6W1vx8PD4Y2Py8PD6VFTx2dn7NTX1mpr6QED3b2\/4hob7PDz6Wlr4dnb8Kir3kpL6QUH0n5\/3c3Pyx8f7MjL1np76W1v1sbH4e3v3jIz6Pj70sLD4ZWX1lJT9\/f3+\/v7\/\/\/8eaPuIAAAA\/XRSTlMAUND\/4ICQEPAgwECgcDBgsBBAYOD\/sDDQULBA8DCg8P9wIIDgEGDQwCCAkJBQcMCgMKDg\/9CwgEAQkPBgwFAgWMjw\/\/9w\/\/\/\/\/\/\/\/\/\/\/\/xP\/\/MP\/\/\/\/+e\/\/\/u\/\/\/\/UP\/\/sv8Q+GD\/yf\/\/IP95\/+L\/\/\/\/Q\/\/\/\/\/\/\/\/uP\/\/\/9j\/gv\/\/\/6Xr\/\/\/\/9v\/\/\/\/\/\/\/\/\/\/\/\/9AEDBQgJDA\/+CwYP\/Q+KAgcDz\/\/\/\/3\/\/\/\/\/7\/\/\/\/D\/cOqm9v\/\/uv\/\/5kCg6P\/EgP\/Z\/6z1tdaQyP8u\/Jfopsjq97\/y4PHuebDE4tCX1OLs8t\/5kPmyzuiCrMRb63TzqPxM3X7wncE93HGcJ+CsWAAAF6tJREFUeJztnXlgXcdVxmVJtmVbdqynd5+U9CWxkjp5kiqqxM8xjZIWWrOmgN0nu3YlR8ZuwTRQE2hScNlSaAJxaaBeZGOb1AlqaBLiQGkDaUNJoWtYCg0QoCxlKVvZCpT1D97+7r2znTNz5t25787vX\/Xd3Pt5+s2ZM3PO9PV5PB6Px+PxeDwej8fj8Xg8Ho\/H43GPVf0Dg6uTfokMsWqgxpqkXyMzrB2qCz6wLukXyQprGnoPeFPpDuuaeg8MJv0mGWF9S\/CBDUm\/SiZY1dZ7YDjpd8kCawc7gg+sTfptMsDqkN4DG5N+m95n01BYcD9t2mZV2FD84scSq9YPCOm\/zC9\/qFkllrvO0OaNm5J+x55iUCF4U3QfsVAB0LvGoB\/mRAypxa6zOekX7RU2AgX32UMq+oGCJ\/2ePcNamOKbk37P3mEtxMb7fZhCxya14l5vUjao9B72etNymVxvn1MhZ1im92VJv10PIhniQ36rzQJrxHr7Nb0NxLH4qqRfrTcRO0rSb9abSOLCpF+tN1ntBe8um8WC+znTBpK1vQ8KLbBOrLc\/02kD2creC24B8bJnYGB90i\/Xi0ROpgwOb\/aCWyasb21luS4sedIv14u0c4XDrZhkQ\/u4Sn+ib9ajNKKUoeHwxvzqZqjoT4nbYN3q\/uH44aqGr\/i9tS6yafUanyv0eJCM5HJJv0KWGM0HVQpjSb9HRhgZD5qMJv0qmaCjt1ecx+VXvIj0eWG9g+II6bPTz5VXXb1ly1WUT4zoHQQTlM9OO9dc++ItNa4mfOZYPqJ3UCB8drrZet31W1pcTvbUsWJU76BE9uh0c\/kVW0KQeQqjd5CnenSaqRt3GJynTI5OTfFXNazeQUDxwqmmZdwREHHKWKkxcqdHJ5k\/cfQOsh6mXMeqXeUl4N+Phu2iMBEe6TM8vYOsr\/C3cgW\/HvrzMUbQ0vRMfajPlHhyB8GMvW9JB1dwFd8K\/DVf1XxJoHaVKatfkwK+jCs4MDBkB7iSzAt+jYmJT+AF94H49TzBXwr77ZQXHM9LuEMc9lsNwYtWPyYNXM4V\/ErQb2fwgvuVDz8wvA702xFuqC2HWR9lDq6JXwv7rYanZH3l09d3lcGs2ZdXKxzDZ8S5kfiLgT\/GB4Y+X\/gigzBFx8X9EDcIU7RcPPM7yVfzBIdmaHUCldmMRyov5QkOiwv7tIZ4EExlOi3ODVOAcWF1iOsIHhSzLPm1RoL3zWopnhLJb7hxW7nG9pt2fDnZQ7mCQwPxvr5JPcGrAaLzs+fLbi6HmLvplpeRPJYbF8IF1x3iKZD81nKcG19O8FhTwbWHeE1yl7fcdjB6V9m2w3iYmwpuMMSrlNy18jme4LVh\/gqz53IFB+8j92nttIUYd1XxrxDobSw5f5cN8wR8CivMtMnLW+QrxYIbSm4suHiTHoSjQ\/yVMsGNJE9acDdjldyr5IKXyzdrTp\/mlqKRTwnj5tGJ2Z0qwctzX6X1ZKP8bI2cmd5uCj5S\/Gql4NUgUWf9aRwWGjqKmxny0QAieLl8E97KTQU3HeCBk+WEheBrQIKX53ZgH53c0r6Bk2eDqsvnr4UJXi5vR\/pKUskr5ADf2D803L1uc7XN2q+DKo6MV7iCXwH+ueEALwKDwnrHqO71xK2t5XaCBS9vwyS1zDYgDAd4AbjdtqG7jVzq2YqvhwtenTzhg5y7xQYW3GSAF6ehu5vtKz+71MlluvZ6t2EEL8+BBzmnyAe+p6m3w1YnPwpf07db0HWpj3xjKfdqlOLgQc7TG7xrr7WHXKOEOfO2qcv95pqnVFGeUoYug\/gLzWtgb6ZzSqJKEXlSItTpvCt3ZxUar4nzlBo3Ax7OL2QDvpnWAM9PIPOD4ZvMutE0tO2TO9GKb79B+XTuiXzg2UKtAY5OnawLtyXuxhXC7WJI4GIzjDqhZVJzolHkg0\/Gxq4x60Ln504HjG\/AK66aO\/kH8oFRoUbaCri\/s2l4fZP4TRVD1l08tLTATpuNQS6dO\/klJ8CoUGOAw+xbeofwsOVBPh163W\/UUbwsy2fxi6qAh2fxegMzVYqL4oY227woO7xFC8vRMtwqthWuhW\/ReDUYsBlzk1zvxuy5xtJAj6Sbb4NnsCIIbYW\/vwbNFeLX9bApEyJ4lTVWFvrRj9Ic4kJb4Ufh0EwKPnMFzMWuV6tdw0ZQHgt1dYe4KFrhNzcAN2EaFegqBPhc4BAfgr4ngm\/atZtmiJe3cRZB\/KAQ3E0ipvh4aWoiV120T06IzH0c+lzF3ZMtwO8J5jWVSmV+z97QENcLVGrM3cI8nt9MArODPDldXSaUClOjuXDANyJw91nwc6V3T1oc4a+t1Nm3v\/3OWrF4Eya3wo9R4KfxxfAVRyzrIddkW\/Dw11WaLCweaL60\/hBn4sMr+Y4CLWGTUuAJjsjJAq7JtrD\/c3slxNLBup1rZFQ6RI2cu7tG1Cky1pOzASZNqLy02cYlwt9ciXKoZufKQ28ywka+lVsxSNW3kKM4rnmH7KahATubP4dfX2FY3A8+MMGnY+T8KZOsMyebvMUdQZEmVOxs4L+B1btmLd9ipng7IufuZhL2nmU6F+JS4ZL7J23dC\/KtXMErR77NTPHtjfNw\/FUmZXfluOK4XLjk\/slhO3q\/ka93pXKHmeDlufrUyR\/gmL6cSmIrUdxOpkRvwlcM8+0iwSvfYah4+RbhAId27oARUXwW9VOJhdtKiL9JKPjR7zRV\/OatggFOseoJEdqFK+IGuCRIsST4a4R6Vyp3mgpe\/i6+3tADEmDaG\/tF5LFkyVLTkuCvlQhe+W5Dvd98l\/Ups0muvvNZnEWejZDdaGtJcE4Q3uFuQ8HfIhjgtFduNBjJadybJMsX2hH8dpnepqbyPQK9MQWxdpEEhZYE\/1654EamcuytAsHBjWmsI9v0sSL4YYXeRqbyfQK9aWNCIyKC968ZtC44f1lPYyoiQ3FogIfC8M2X1daVG20L\/v1KwbVN5ZggQnFpgDfj8MHh9u2emzpxoo1DKcJlPYGp\/EAKBnhf7UrbDdGUYCubZeVA5w8CBNc0lR8S6e3UAOfRvCbbShnE69RyV\/RyKveI9LYSg9OydvXgQL8VvWXL+hAaOZW3iQwctVnfc\/wwTHB8olY4YRLtHaeVHwEKXnk7Uu97hXrDr0vqRYr3LS6ABD+Cig0lev8o\/LhVD1KrW9u75xBEcUxsKNF7yz3suawM0Ty3tPvgklrxH4MLLg5QtrwFVvPWo4Tqew+oreV+uOLHRXrfdaz61xuT\/u7EiO697tmnsHHEJr5I8Xvqf82s4vEzSwprwdg4X\/F3NP+aUcV5hQVSa0HYOFfxe4+1\/ppNxQUF1fvF1oKJxlnF73pb56+S+qveRVgctvfgvMDGMdE4o\/jx8F+3Z09xaZu0A7u41nI3JqkSU\/wd0b9mT3FVMR7XWlBJlYji98b\/mjnF1S0aeNby45qKv\/UY89eMKQ4rxdu9Kx4ponLjbcXDE2ZGFecWx3CtZTE6caIOMR+X6J0txTHVvXv3hK0FNXE2FT8u+GuGFEc2fQlbyzsxgtcVF+mdJcV5xV9y9rcXobhN5eMSvbOjuNYNFu3UOSJxWOXN0r9mRPFptbxcdj+whF1xqsiG4gbt\/Wu7cualERlTXOfm8g5VazE9N541xU27nwe7f4JS8Z7P1hr0zm3zk15xOOgOOzx2esXB4INwDrfp9JPMpuLG9yk0FTdpqZIpxbW7ccd4l3YrMh569zGlArNr+8KKUwpelp\/JOhHmZJeUosH4CqIOJp2xYIqfOr185uzZn2I5d\/b88oUTXRdPB+MgPMRPkyoevVDixPL5BzlKx3Vfdn28v+HdB9RCgtlJKfhcq1XWydNn1Fp3ePDiaYdFf1OlMn9wr1rKxBR\/6GGehShFXz6VtLJ8mlUmoRaFZtCG43M\/c+achtoNzp1xUfN284iFXTTWQqj4ynse0Va7qfnDznnLz4a2J2msRb8zcJT3PmqodoPzboUu8eYRFNZCsgB67HESuWucu5C0yiF+jjnaQ2AtxoqvPHGJTO4aTy674iyHGb1JrOXnnZLbJcl\/gSu4ubUYLDltyF2X\/OGkxa7xPpHgptairTihd8c5dzppuVWl3ibWorfIf69pHCjn7EMJC\/6LcsGNrGUnXu6VR63KXSNhK3+\/UnADa0Er\/gE75h3lXJJhubrfkpG14BRfeaoLctc4gx\/kY7lcDtkAkcsvAQXXtRaM4l0Z3g0eRKZYGnd5QC8KlwDpt2RmLeC0ysovd03uGqgIsd0de9ZUcGEQLgJtLdBE1tN2gxOW83BbmewcA5wxFPyDWMEraGuBKd5FO2kBtpXwnRIFM70\/pKF3BWstEMWf6LrcVZ6ERSuROzzyZoI\/oyd4BWctSsXxwffZi8sXwjv1p06cWF4+i96oAOUQo2ekjCKVw5AgXAjcWhSKr6Ds+1eWT4sXiycevohS\/aJapNgGO75bcwhoEC4CbC1SxRHT5YefeFp9POjkBYToKsWZu93QV4eH+VVDwStga5Eo\/jR0unzqsZXGL6RXLTc4Bd4HjSs+M1sqTU2N5hpd9ceYM5cmsyYuCBcCshah4kC9H2mpXWXuFZCvO3XmSdCTH4yEh+EBPc47j2Yyaz5LIzjMWgSKg\/S+9OhHIj+C1kdcAB2uCCk+AqgNNpg1f41K8ArEWviKA7Injz+xEv8V+FztqYsAxTs5csiZVoNZc1rSeEYDlbVwFVdGKI8\/xvt3gp+rfUgpeSg2hJySn9YXPC9pPKOFwlo0FL\/0Hq4RgSZOoOThWBygN\/LiwjDNujVB4xlNpNaCVpw1kxawibPJKYmXR9Y+EMGDCV3BOxNy16wFp\/iHP8L5X7fYjvrW06IoMbrWhBXeaIbikbq1blkLQvFLXPPugGvnefIMQG9oIUhJK2cYr1ujtpbd3HcFK\/6U0E1aIFvWnuAM8nguZQRaCZIfxUeHJfYxxNayh6v4qyGKCyfLEHM3qD8yzElm8mRzV\/B67OIU7kY9Qd0asbUs8qxlp1rxR55W661RH34huvbkbfpwhqGQWdSlekK7orWWJY61KBV\/VGknDdB1hafCRRTcvBWuicks4r8tcyvb1qJQHGAnTdCdx0+el+uN7WICV1zxL2nZWnhV+S3FVdFJGFQ03uCMXG\/OjeFSwAt9dd2aVWvhnTtsKH4JZN8tcNF4nQtSvbGtv8DZWtC\/o0VrESmO01uruf4Fqd7IIuES8D8KbR5hz1r4imP1RiVVWpx4UrrPgypahQoO7glpz1p4NRIrssU8nzmN3kHyA7SoTiZAS0G2o7FjLUSNEG7CCy4H1egBePgN2RPSkrW8i6a6kLrnBGrtA3ymTjsaC9ZCU8+pERvKwPy\/H5qp1eoJGTBNfg2pWsttr6JQ\/FZSweGOkgcnDXV7Qsab\/JpStZadFIpTmgp44VNEpMWN2tGw\/cNNWPp1CsWReUMZ0AE+jcjPmvWEDIitBdeZmY\/GglMEbDAWULlZgnY0lNZyB0ET1R1UeoOC8CLuqARFT8iA0lpw\/d65kEUqkAE+jsqDE\/WErENlLUfNWzMTRSogt0XqjQrsVRBZyxGdO62j0EQqEG2wpwuJekK2obEW5IW\/LDo5FRbIB2OPXlH1hAxBYS3GwQpJTgXytdiDQGQ9IcMQWItxsKKRqNUSHHmaU3dZr8TYWu5GXQfEso1AcIiH4wR\/40dtCR4YW4vpPRIEwTikRSnuic9UDu2h61DIYGgtZlMnRTA+006l5AtTOU6ND1bwj1VqOSOqDoU8jKzFbOqk6H89MlsqBaWpmfbaPRfLZo2jHteqW1vaxT\/6R4OBtZitOinmTYaxqOLQXcwGH+982ryb1mK06qTNjPMVR5WxxerWnLSWIyZG\/nK1BhpMhnfIUKfDmeYRTlqLgZFThIYcwuX2qEzKJzif56C1GBg5+rQhVnHUwl7Uwc05a9FPZlka4i3Fi7h1\/SeFX2jbWtAb\/rj7Iu0P8b6+0UKpMIXMzL5P9omWreUQUnHd1IqtIa5DvI0yg11reQBnLbrxobUhjkfdE7JqLZS3QcS5D2ctqPvbHRzih2GfSXkbBAPOWvRsxU4srgG8HQ3ZbRA8MNaiFa3YWW5q8CnE2KK6DYIPwlp0ohXas4baYNvROGItGtsSGlURNkD3hHTEWo6g5865pKVuoNMT0g1rQc+dTkybisbsYhywliP34wQnL4rQQbysV5O8tSAHedJi1\/iYgeAOWAtukDvgKcplvZKkrQUzyB2IUz6u+h4I\/IYcRCitBTHICc+La3KYQu+KqCEHFSpreQ4ck5McNDTBtMtsCF5DDjIU1nIEuvC0sn2P4TdI6ywTtJajsOxK4jnaaeI6ywSt5Q6Ir5CVoOjSODJLWsKdnLXcqY5Xkha8XUlBW8KdlLWoj64kLXj4RGKKrOWA0FqOKkLEhAWPV9eS1llatZZgj8gFn5POntQND5CwdWu0Jdx2reWgwFpkkhOWJuvAPddPWsKdjLUcFXl5whvJwro1Wmt5IAFrOXonN0hMOAyXtKOhtRarxRUia7mDnT8pDuabIK9bI7aW++xJLrKWI++Map50rlBdt5Z+a6k8d+f9DXP5zd9KfNMe0jyiB6ylzsLibxtdJUUCsMVN+q2l+g\/9adPrFwlAtKPROFYsptvWsrTrdzS6qFsA0RNS51ixjC5ay+LvYhuo2wLdjgZ7rFhKd6xl\/jOfxvYwsQe6J2SAPlYsx7a1LOx63vxuaEJ0ekJSW4vN4orxCSeMu41+OxpSa7FUXJGfdsdKmuj3hAyorYW8bmvWgRiQwbAdjbvWUnIjBoxj3BPSTWvJuxIDMhD0hAxcs5Yi7v6croK8skPMXuFWlw4m1lJwKgaMQ9cTUpE0QqNnLa7FgAyoZb0a8S66BmhrcTAGjEPdEzKQ7KLrgLEWJ2PAODrLeiVJWIujMSCDlZ6QAbG1KIsr8hOuxoBxrPWEDKitRVxc4XIMGOfZ37Oap6O1Fn7dViENxt3m9yuWtwAsW4vzMWCMVmGm1SYo1qwlP50W427zTPs77PZX2k17Aro2PIqpiAHj\/IFg7FiA9AT0YlpiwBhMYabVcmKq4or5F\/4wdVbS5I\/Yr7FbTmxeXLH07o+mJwaMc1gwgqyenjexloXFP06jcbcRF2ZaPT2vay37PpuyGJDhT6SDyS1rmX\/hT9Nq3G1U\/ZbsFuZgrKVq3Km2kibPqr\/U7iIUZi0Li3+WzhiQ4c9hn2vzHJraWvZ9LrUxYBxwvyW759BkJ6DnP5PiGJDhGeF3cr7crrVwiyuWdj3fC8bd4S8Qglcs57eY4oqFxb9MewwYB99vyXJ+K2Qt+z6X\/hiQgbOsV2M3v9WwlqpxJ1+CQ89hHb3ro8+utTzwfI\/EgHEM+i1ZzG+lZy8YjWxZr8bKIrTo\/iEefbBtlFmo81vp2gtGA1jWKyHMb433qHF3AC3r1ZAsQlO4F4xGu40yi2F+qzjbizEgw+1\/Rae4SX6r0PNW0mSStmBBbxHawzEgQ61ujbYWCpvf6ukYkKV5ZJa2FgqR3+rxGJAhdAif2loAkWLvx4AMkUJBamuR57eyEAOyTMVUILYWYX4rIzEgC6eOitZauPmtzMSALNymkMTWEstvZSkGZBG166C2lj0tK8lWDMgi0NuCtdTyW6k8yE2LRHBia9n32ewadwhVdT1Rt7ylF\/46y8YdgjtpRjFuxLnw+b\/JaAzIASC4YSPOQ3\/rdEOHbgPtuaRpLUt\/9\/feSiIg6uvR1rLw+X\/IeAzIIQcXHGkt81\/4x6Q\/zkmQTYCA1rL0T\/\/sY0A++KY0amv5l3\/1xi1Ep+2S1Fq++IV\/S\/qbnEazsZjAWhb+\/T+S\/iDn0W6dx1rLl\/7TW4kag05XEWv54n\/9d9KfkhKMukM2rWXhf\/436c9ID5OG7SH3L37p\/3wMiMGsm5u7jV3dBZTB4pLZvWAzdHvOut3Y1WXGNBQfz\/ResCnY9WYKGrs6DkpxvxdMQA7qKilt6uUeY5AbZXwMSIlquy1NjV3TwZgsIPcxoA1yAsnT1tg1RYxNM23EfQxombGJQlv0fGnKL967wkiuig9JPB6Px+PxeDwej8fj8Xg8Ho\/H4\/F4nOf\/AepPpxfYc\/5HAAAAAElFTkSuQmCC\" alt=\"Celebrate\" loading=\"lazy\" class=\"w-auto max-w-6 h-5\"><span>1<\/span><\/span><\/span><\/span>\n                    <\/div>\n    <\/a>        <\/div>\n    <\/article>\n<\/div>\n\n\n<div class=\"@container\">\n    <article class=\"flex gap-2xl items-center flex-col @md:flex-row-reverse\">\n        <div class=\"w-full @md:w-1\/3 flex items-center justify-center peer\">\n            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/data-analysis-in-python-and-esproc-spl-compared-what-are-the-differences-and-which-is-best\/\" aria-label=\"Data analysis in Python and esProc SPL compared &#8211; what are the differences, and which is best?\" class=\"no-underline relative aspect-3\/2 bg-gray-100 border border-gray-100 dark:border-gray-800 flex items-center justify-center flex-col gap-md w-full p-md\">\n\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/02\/Kusto-queries-performance-analysis-in-Microsoft-Fabric.jpg\" class=\"object-cover absolute inset-0 w-full h-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/02\/Kusto-queries-performance-analysis-in-Microsoft-Fabric.jpg 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/02\/Kusto-queries-performance-analysis-in-Microsoft-Fabric-300x300.jpg 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/02\/Kusto-queries-performance-analysis-in-Microsoft-Fabric-150x150.jpg 150w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/02\/Kusto-queries-performance-analysis-in-Microsoft-Fabric-768x768.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t<\/a>        <\/div>\n        <div class=\"w-full @md:w-2\/3 overflow-auto group\/content-text\">\n            \n<div class=\"block mb-md align-middle\">\n            \n        <a\n        href=\"https:\/\/www.red-gate.com\/simple-talk\/author\/chisomkanu\/\"\n        class=\"group\/author inline align-middle no-style min-w-fit\"\n        rel=\"author\"\n    >\n        <img decoding=\"async\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/06\/chisom-150x150.jpg\"\n            alt=\"Image of author: Chisom Kanu\" \n            class=\"rounded-full align-middle w-6 h-6 duration-200 inline-block object-cover\"\/>\n        <span class=\"group-hover\/author:text-brand-600 peer\/ftr-image:text-brand-600 group-hover\/author:dark:text-brand-400 peer\/ftr-image:dark:text-brand-400 group-hover\/author:underline min-w-fit align-middle duration-200\">Chisom Kanu<\/span>\n    <\/a>\n\n        <span class=\"card__categories align-middle\">\n                                                        <span class=\"text-gray-600 align-middle dark:text-gray-400\">in<\/span>\n                    <a\n                    class=\"inline align-middle no-underline hover:text-brand-600 hover:dark:text-brand-400 hover:underline\"\n                    href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/\">\n                            Development                    <\/a>\n                                        <\/span>\n<\/div>\n<a class=\"no-underline group\/content-text-lower\" href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/data-analysis-in-python-and-esproc-spl-compared-what-are-the-differences-and-which-is-best\/ \">\n    <div>\n        <h1 class=\"\n            duration-200 mt-0 mb-1 text-xl\n            \n            peer-hover:group-[]\/content-text:text-brand-600\n            group-hover\/content-text-lower:text-brand-600\n\n            peer-hover:group-[]\/content-text:dark:text-brand-400\n            group-hover\/content-text-lower:dark:text-brand-400\n            \n            peer-hover:group-[]\/content-text:underline\n            group-hover\/content-text-lower:underline\n            \n        \">\n            Data analysis in Python and esProc SPL compared &#8211; what are the differences, and which is best?        <\/h1>\n                    <p class=\"mb-0\">\n                Compare esProc SPL and Python for data analysis. Discover how esProc simplifies grouping, filtering, and data processing compared to Pandas.&hellip;            <\/p>\n            <\/div>\n            <div class=\"flex items-center gap-1 mt-md\">\n            <time>09 April 2026<\/time>\n            <span class=\"w-1 h-1 bg-current\tinline-block my-auto rounded-full\"><\/span>\n            <span>19 min read<\/span>\n                            <span class=\"hidden @lg:inline-block w-1 h-1 bg-current rounded-full\"><\/span>\n                <span class=\"hidden @lg:inline-flex\"><span class=\"inline-flex items-center gap-2\"><span class=\"inline-flex items-center gap-1\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXAAAAFwCAMAAACWx9ANAAADAFBMVEVHcEz\/4jb\/4TP\/4zX\/4jX\/4zX\/4jX\/3y\/\/4zX\/3zf\/4zX\/4zP\/4jT\/4zT\/5DX\/4TX\/4zX\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD7jwP8jwH7jwP\/AAD5jwX6jwP6kAP8kAP\/AAD\/jwD7jwP6jwP\/jwD8jwL8jwL\/AAD\/AAD\/AAD\/AAD7jwP\/AAD8jwL8jwL\/AADJAADMAADKAADMAADLAADMAADLAADLAADPAADLAADMAADMAADMAADMAADPAADZAADcAADkAADZAADfAADMAADlAADyAAD5AADPAADsAAD8AADcAADVAADSAAD0xMT4iYn9Hh709PTy8vL0xcX6W1v+Dw\/z29v2p6f7TEzz5OTz5OT3mJj9Li7y8vL01dX5amrz2Nj1trbv7+\/w6urx8fHiRETz0tLw4+PRHR3v7+\/mpqby39\/VPDzx39\/t1NTODg7feXnqWQLTLS3SEgD5iAPrxMTtYwLYJAHy0tLPCQD2fgPnUQLz1dXwbALz0dHkSALbLQHVGwH009Pz1NTaWlrzdQL8PT35iwPhiIjYS0veNgHqWgLdaWnkl5f4eXnoQkLiAAD1AAA7g98\/f986hN88hd87hd88hN86g988hd88hd87hd89hN\/pAAA8hN\/1ioo8hN8\/h987hN9\/SHfDCA6NOmJXbLbw6+uoIThyU4yWMlROdcTx3d2EQ3BEfdI7g9\/vAADx8fHz6Ojy6enw7OyfKkZpXJry4+N7S36xGSrw6+vz8\/Py8vJTbLdgZKjw6+vx8fG6ERzz5+fgLi79LCzy7e3y6+vw6eny8vLz6enotbX5U1PTJibOCwv5QED9GBj8Jyf5UVH3bm78PT3z4ODy8vLy8fH3cHD8Hx\/w8PD7T0\/5ZWXx8fH9GRn6W1vx8PD4Y2Py8PD6VFTx2dn7NTX1mpr6QED3b2\/4hob7PDz6Wlr4dnb8Kir3kpL6QUH0n5\/3c3Pyx8f7MjL1np76W1v1sbH4e3v3jIz6Pj70sLD4ZWX1lJT9\/f3+\/v7\/\/\/8eaPuIAAAA\/XRSTlMAUND\/4ICQEPAgwECgcDBgsBBAYOD\/sDDQULBA8DCg8P9wIIDgEGDQwCCAkJBQcMCgMKDg\/9CwgEAQkPBgwFAgWMjw\/\/9w\/\/\/\/\/\/\/\/\/\/\/\/xP\/\/MP\/\/\/\/+e\/\/\/u\/\/\/\/UP\/\/sv8Q+GD\/yf\/\/IP95\/+L\/\/\/\/Q\/\/\/\/\/\/\/\/uP\/\/\/9j\/gv\/\/\/6Xr\/\/\/\/9v\/\/\/\/\/\/\/\/\/\/\/\/9AEDBQgJDA\/+CwYP\/Q+KAgcDz\/\/\/\/3\/\/\/\/\/7\/\/\/\/D\/cOqm9v\/\/uv\/\/5kCg6P\/EgP\/Z\/6z1tdaQyP8u\/Jfopsjq97\/y4PHuebDE4tCX1OLs8t\/5kPmyzuiCrMRb63TzqPxM3X7wncE93HGcJ+CsWAAAF6tJREFUeJztnXlgXcdVxmVJtmVbdqynd5+U9CWxkjp5kiqqxM8xjZIWWrOmgN0nu3YlR8ZuwTRQE2hScNlSaAJxaaBeZGOb1AlqaBLiQGkDaUNJoWtYCg0QoCxlKVvZCpT1D97+7r2znTNz5t25787vX\/Xd3Pt5+s2ZM3PO9PV5PB6Px+PxeDwej8fj8Xg8Ho\/H43GPVf0Dg6uTfokMsWqgxpqkXyMzrB2qCz6wLukXyQprGnoPeFPpDuuaeg8MJv0mGWF9S\/CBDUm\/SiZY1dZ7YDjpd8kCawc7gg+sTfptMsDqkN4DG5N+m95n01BYcD9t2mZV2FD84scSq9YPCOm\/zC9\/qFkllrvO0OaNm5J+x55iUCF4U3QfsVAB0LvGoB\/mRAypxa6zOekX7RU2AgX32UMq+oGCJ\/2ePcNamOKbk37P3mEtxMb7fZhCxya14l5vUjao9B72etNymVxvn1MhZ1im92VJv10PIhniQ36rzQJrxHr7Nb0NxLH4qqRfrTcRO0rSb9abSOLCpF+tN1ntBe8um8WC+znTBpK1vQ8KLbBOrLc\/02kD2creC24B8bJnYGB90i\/Xi0ROpgwOb\/aCWyasb21luS4sedIv14u0c4XDrZhkQ\/u4Sn+ib9ajNKKUoeHwxvzqZqjoT4nbYN3q\/uH44aqGr\/i9tS6yafUanyv0eJCM5HJJv0KWGM0HVQpjSb9HRhgZD5qMJv0qmaCjt1ecx+VXvIj0eWG9g+II6bPTz5VXXb1ly1WUT4zoHQQTlM9OO9dc++ItNa4mfOZYPqJ3UCB8drrZet31W1pcTvbUsWJU76BE9uh0c\/kVW0KQeQqjd5CnenSaqRt3GJynTI5OTfFXNazeQUDxwqmmZdwREHHKWKkxcqdHJ5k\/cfQOsh6mXMeqXeUl4N+Phu2iMBEe6TM8vYOsr\/C3cgW\/HvrzMUbQ0vRMfajPlHhyB8GMvW9JB1dwFd8K\/DVf1XxJoHaVKatfkwK+jCs4MDBkB7iSzAt+jYmJT+AF94H49TzBXwr77ZQXHM9LuEMc9lsNwYtWPyYNXM4V\/ErQb2fwgvuVDz8wvA702xFuqC2HWR9lDq6JXwv7rYanZH3l09d3lcGs2ZdXKxzDZ8S5kfiLgT\/GB4Y+X\/gigzBFx8X9EDcIU7RcPPM7yVfzBIdmaHUCldmMRyov5QkOiwv7tIZ4EExlOi3ODVOAcWF1iOsIHhSzLPm1RoL3zWopnhLJb7hxW7nG9pt2fDnZQ7mCQwPxvr5JPcGrAaLzs+fLbi6HmLvplpeRPJYbF8IF1x3iKZD81nKcG19O8FhTwbWHeE1yl7fcdjB6V9m2w3iYmwpuMMSrlNy18jme4LVh\/gqz53IFB+8j92nttIUYd1XxrxDobSw5f5cN8wR8CivMtMnLW+QrxYIbSm4suHiTHoSjQ\/yVMsGNJE9acDdjldyr5IKXyzdrTp\/mlqKRTwnj5tGJ2Z0qwctzX6X1ZKP8bI2cmd5uCj5S\/Gql4NUgUWf9aRwWGjqKmxny0QAieLl8E97KTQU3HeCBk+WEheBrQIKX53ZgH53c0r6Bk2eDqsvnr4UJXi5vR\/pKUskr5ADf2D803L1uc7XN2q+DKo6MV7iCXwH+ueEALwKDwnrHqO71xK2t5XaCBS9vwyS1zDYgDAd4AbjdtqG7jVzq2YqvhwtenTzhg5y7xQYW3GSAF6ehu5vtKz+71MlluvZ6t2EEL8+BBzmnyAe+p6m3w1YnPwpf07db0HWpj3xjKfdqlOLgQc7TG7xrr7WHXKOEOfO2qcv95pqnVFGeUoYug\/gLzWtgb6ZzSqJKEXlSItTpvCt3ZxUar4nzlBo3Ax7OL2QDvpnWAM9PIPOD4ZvMutE0tO2TO9GKb79B+XTuiXzg2UKtAY5OnawLtyXuxhXC7WJI4GIzjDqhZVJzolHkg0\/Gxq4x60Ln504HjG\/AK66aO\/kH8oFRoUbaCri\/s2l4fZP4TRVD1l08tLTATpuNQS6dO\/klJ8CoUGOAw+xbeofwsOVBPh163W\/UUbwsy2fxi6qAh2fxegMzVYqL4oY227woO7xFC8vRMtwqthWuhW\/ReDUYsBlzk1zvxuy5xtJAj6Sbb4NnsCIIbYW\/vwbNFeLX9bApEyJ4lTVWFvrRj9Ic4kJb4Ufh0EwKPnMFzMWuV6tdw0ZQHgt1dYe4KFrhNzcAN2EaFegqBPhc4BAfgr4ngm\/atZtmiJe3cRZB\/KAQ3E0ipvh4aWoiV120T06IzH0c+lzF3ZMtwO8J5jWVSmV+z97QENcLVGrM3cI8nt9MArODPDldXSaUClOjuXDANyJw91nwc6V3T1oc4a+t1Nm3v\/3OWrF4Eya3wo9R4KfxxfAVRyzrIddkW\/Dw11WaLCweaL60\/hBn4sMr+Y4CLWGTUuAJjsjJAq7JtrD\/c3slxNLBup1rZFQ6RI2cu7tG1Cky1pOzASZNqLy02cYlwt9ciXKoZufKQ28ywka+lVsxSNW3kKM4rnmH7KahATubP4dfX2FY3A8+MMGnY+T8KZOsMyebvMUdQZEmVOxs4L+B1btmLd9ipng7IufuZhL2nmU6F+JS4ZL7J23dC\/KtXMErR77NTPHtjfNw\/FUmZXfluOK4XLjk\/slhO3q\/ka93pXKHmeDlufrUyR\/gmL6cSmIrUdxOpkRvwlcM8+0iwSvfYah4+RbhAId27oARUXwW9VOJhdtKiL9JKPjR7zRV\/OatggFOseoJEdqFK+IGuCRIsST4a4R6Vyp3mgpe\/i6+3tADEmDaG\/tF5LFkyVLTkuCvlQhe+W5Dvd98l\/Ups0muvvNZnEWejZDdaGtJcE4Q3uFuQ8HfIhjgtFduNBjJadybJMsX2hH8dpnepqbyPQK9MQWxdpEEhZYE\/1654EamcuytAsHBjWmsI9v0sSL4YYXeRqbyfQK9aWNCIyKC968ZtC44f1lPYyoiQ3FogIfC8M2X1daVG20L\/v1KwbVN5ZggQnFpgDfj8MHh9u2emzpxoo1DKcJlPYGp\/EAKBnhf7UrbDdGUYCubZeVA5w8CBNc0lR8S6e3UAOfRvCbbShnE69RyV\/RyKveI9LYSg9OydvXgQL8VvWXL+hAaOZW3iQwctVnfc\/wwTHB8olY4YRLtHaeVHwEKXnk7Uu97hXrDr0vqRYr3LS6ABD+Cig0lev8o\/LhVD1KrW9u75xBEcUxsKNF7yz3suawM0Ty3tPvgklrxH4MLLg5QtrwFVvPWo4Tqew+oreV+uOLHRXrfdaz61xuT\/u7EiO697tmnsHHEJr5I8Xvqf82s4vEzSwprwdg4X\/F3NP+aUcV5hQVSa0HYOFfxe4+1\/ppNxQUF1fvF1oKJxlnF73pb56+S+qveRVgctvfgvMDGMdE4o\/jx8F+3Z09xaZu0A7u41nI3JqkSU\/wd0b9mT3FVMR7XWlBJlYji98b\/mjnF1S0aeNby45qKv\/UY89eMKQ4rxdu9Kx4ponLjbcXDE2ZGFecWx3CtZTE6caIOMR+X6J0txTHVvXv3hK0FNXE2FT8u+GuGFEc2fQlbyzsxgtcVF+mdJcV5xV9y9rcXobhN5eMSvbOjuNYNFu3UOSJxWOXN0r9mRPFptbxcdj+whF1xqsiG4gbt\/Wu7cualERlTXOfm8g5VazE9N541xU27nwe7f4JS8Z7P1hr0zm3zk15xOOgOOzx2esXB4INwDrfp9JPMpuLG9yk0FTdpqZIpxbW7ccd4l3YrMh569zGlArNr+8KKUwpelp\/JOhHmZJeUosH4CqIOJp2xYIqfOr185uzZn2I5d\/b88oUTXRdPB+MgPMRPkyoevVDixPL5BzlKx3Vfdn28v+HdB9RCgtlJKfhcq1XWydNn1Fp3ePDiaYdFf1OlMn9wr1rKxBR\/6GGehShFXz6VtLJ8mlUmoRaFZtCG43M\/c+achtoNzp1xUfN284iFXTTWQqj4ynse0Va7qfnDznnLz4a2J2msRb8zcJT3PmqodoPzboUu8eYRFNZCsgB67HESuWucu5C0yiF+jjnaQ2AtxoqvPHGJTO4aTy674iyHGb1JrOXnnZLbJcl\/gSu4ubUYLDltyF2X\/OGkxa7xPpHgptairTihd8c5dzppuVWl3ibWorfIf69pHCjn7EMJC\/6LcsGNrGUnXu6VR63KXSNhK3+\/UnADa0Er\/gE75h3lXJJhubrfkpG14BRfeaoLctc4gx\/kY7lcDtkAkcsvAQXXtRaM4l0Z3g0eRKZYGnd5QC8KlwDpt2RmLeC0ysovd03uGqgIsd0de9ZUcGEQLgJtLdBE1tN2gxOW83BbmewcA5wxFPyDWMEraGuBKd5FO2kBtpXwnRIFM70\/pKF3BWstEMWf6LrcVZ6ERSuROzzyZoI\/oyd4BWctSsXxwffZi8sXwjv1p06cWF4+i96oAOUQo2ekjCKVw5AgXAjcWhSKr6Ds+1eWT4sXiycevohS\/aJapNgGO75bcwhoEC4CbC1SxRHT5YefeFp9POjkBYToKsWZu93QV4eH+VVDwStga5Eo\/jR0unzqsZXGL6RXLTc4Bd4HjSs+M1sqTU2N5hpd9ceYM5cmsyYuCBcCshah4kC9H2mpXWXuFZCvO3XmSdCTH4yEh+EBPc47j2Yyaz5LIzjMWgSKg\/S+9OhHIj+C1kdcAB2uCCk+AqgNNpg1f41K8ArEWviKA7Injz+xEv8V+FztqYsAxTs5csiZVoNZc1rSeEYDlbVwFVdGKI8\/xvt3gp+rfUgpeSg2hJySn9YXPC9pPKOFwlo0FL\/0Hq4RgSZOoOThWBygN\/LiwjDNujVB4xlNpNaCVpw1kxawibPJKYmXR9Y+EMGDCV3BOxNy16wFp\/iHP8L5X7fYjvrW06IoMbrWhBXeaIbikbq1blkLQvFLXPPugGvnefIMQG9oIUhJK2cYr1ujtpbd3HcFK\/6U0E1aIFvWnuAM8nguZQRaCZIfxUeHJfYxxNayh6v4qyGKCyfLEHM3qD8yzElm8mRzV\/B67OIU7kY9Qd0asbUs8qxlp1rxR55W661RH34huvbkbfpwhqGQWdSlekK7orWWJY61KBV\/VGknDdB1hafCRRTcvBWuicks4r8tcyvb1qJQHGAnTdCdx0+el+uN7WICV1zxL2nZWnhV+S3FVdFJGFQ03uCMXG\/OjeFSwAt9dd2aVWvhnTtsKH4JZN8tcNF4nQtSvbGtv8DZWtC\/o0VrESmO01uruf4Fqd7IIuES8D8KbR5hz1r4imP1RiVVWpx4UrrPgypahQoO7glpz1p4NRIrssU8nzmN3kHyA7SoTiZAS0G2o7FjLUSNEG7CCy4H1egBePgN2RPSkrW8i6a6kLrnBGrtA3ymTjsaC9ZCU8+pERvKwPy\/H5qp1eoJGTBNfg2pWsttr6JQ\/FZSweGOkgcnDXV7Qsab\/JpStZadFIpTmgp44VNEpMWN2tGw\/cNNWPp1CsWReUMZ0AE+jcjPmvWEDIitBdeZmY\/GglMEbDAWULlZgnY0lNZyB0ET1R1UeoOC8CLuqARFT8iA0lpw\/d65kEUqkAE+jsqDE\/WErENlLUfNWzMTRSogt0XqjQrsVRBZyxGdO62j0EQqEG2wpwuJekK2obEW5IW\/LDo5FRbIB2OPXlH1hAxBYS3GwQpJTgXytdiDQGQ9IcMQWItxsKKRqNUSHHmaU3dZr8TYWu5GXQfEso1AcIiH4wR\/40dtCR4YW4vpPRIEwTikRSnuic9UDu2h61DIYGgtZlMnRTA+006l5AtTOU6ND1bwj1VqOSOqDoU8jKzFbOqk6H89MlsqBaWpmfbaPRfLZo2jHteqW1vaxT\/6R4OBtZitOinmTYaxqOLQXcwGH+982ryb1mK06qTNjPMVR5WxxerWnLSWIyZG\/nK1BhpMhnfIUKfDmeYRTlqLgZFThIYcwuX2qEzKJzif56C1GBg5+rQhVnHUwl7Uwc05a9FPZlka4i3Fi7h1\/SeFX2jbWtAb\/rj7Iu0P8b6+0UKpMIXMzL5P9omWreUQUnHd1IqtIa5DvI0yg11reQBnLbrxobUhjkfdE7JqLZS3QcS5D2ctqPvbHRzih2GfSXkbBAPOWvRsxU4srgG8HQ3ZbRA8MNaiFa3YWW5q8CnE2KK6DYIPwlp0ohXas4baYNvROGItGtsSGlURNkD3hHTEWo6g5865pKVuoNMT0g1rQc+dTkybisbsYhywliP34wQnL4rQQbysV5O8tSAHedJi1\/iYgeAOWAtukDvgKcplvZKkrQUzyB2IUz6u+h4I\/IYcRCitBTHICc+La3KYQu+KqCEHFSpreQ4ck5McNDTBtMtsCF5DDjIU1nIEuvC0sn2P4TdI6ywTtJajsOxK4jnaaeI6ywSt5Q6Ir5CVoOjSODJLWsKdnLXcqY5Xkha8XUlBW8KdlLWoj64kLXj4RGKKrOWA0FqOKkLEhAWPV9eS1llatZZgj8gFn5POntQND5CwdWu0Jdx2reWgwFpkkhOWJuvAPddPWsKdjLUcFXl5whvJwro1Wmt5IAFrOXonN0hMOAyXtKOhtRarxRUia7mDnT8pDuabIK9bI7aW++xJLrKWI++Map50rlBdt5Z+a6k8d+f9DXP5zd9KfNMe0jyiB6ylzsLibxtdJUUCsMVN+q2l+g\/9adPrFwlAtKPROFYsptvWsrTrdzS6qFsA0RNS51ixjC5ay+LvYhuo2wLdjgZ7rFhKd6xl\/jOfxvYwsQe6J2SAPlYsx7a1LOx63vxuaEJ0ekJSW4vN4orxCSeMu41+OxpSa7FUXJGfdsdKmuj3hAyorYW8bmvWgRiQwbAdjbvWUnIjBoxj3BPSTWvJuxIDMhD0hAxcs5Yi7v6croK8skPMXuFWlw4m1lJwKgaMQ9cTUpE0QqNnLa7FgAyoZb0a8S66BmhrcTAGjEPdEzKQ7KLrgLEWJ2PAODrLeiVJWIujMSCDlZ6QAbG1KIsr8hOuxoBxrPWEDKitRVxc4XIMGOfZ37Oap6O1Fn7dViENxt3m9yuWtwAsW4vzMWCMVmGm1SYo1qwlP50W427zTPs77PZX2k17Aro2PIqpiAHj\/IFg7FiA9AT0YlpiwBhMYabVcmKq4or5F\/4wdVbS5I\/Yr7FbTmxeXLH07o+mJwaMc1gwgqyenjexloXFP06jcbcRF2ZaPT2vay37PpuyGJDhT6SDyS1rmX\/hT9Nq3G1U\/ZbsFuZgrKVq3Km2kibPqr\/U7iIUZi0Li3+WzhiQ4c9hn2vzHJraWvZ9LrUxYBxwvyW759BkJ6DnP5PiGJDhGeF3cr7crrVwiyuWdj3fC8bd4S8Qglcs57eY4oqFxb9MewwYB99vyXJ+K2Qt+z6X\/hiQgbOsV2M3v9WwlqpxJ1+CQ89hHb3ro8+utTzwfI\/EgHEM+i1ZzG+lZy8YjWxZr8bKIrTo\/iEefbBtlFmo81vp2gtGA1jWKyHMb433qHF3AC3r1ZAsQlO4F4xGu40yi2F+qzjbizEgw+1\/Rae4SX6r0PNW0mSStmBBbxHawzEgQ61ujbYWCpvf6ukYkKV5ZJa2FgqR3+rxGJAhdAif2loAkWLvx4AMkUJBamuR57eyEAOyTMVUILYWYX4rIzEgC6eOitZauPmtzMSALNymkMTWEstvZSkGZBG166C2lj0tK8lWDMgi0NuCtdTyW6k8yE2LRHBia9n32ewadwhVdT1Rt7ylF\/46y8YdgjtpRjFuxLnw+b\/JaAzIASC4YSPOQ3\/rdEOHbgPtuaRpLUt\/9\/feSiIg6uvR1rLw+X\/IeAzIIQcXHGkt81\/4x6Q\/zkmQTYCA1rL0T\/\/sY0A++KY0amv5l3\/1xi1Ep+2S1Fq++IV\/S\/qbnEazsZjAWhb+\/T+S\/iDn0W6dx1rLl\/7TW4kag05XEWv54n\/9d9KfkhKMukM2rWXhf\/436c9ID5OG7SH3L37p\/3wMiMGsm5u7jV3dBZTB4pLZvWAzdHvOut3Y1WXGNBQfz\/ResCnY9WYKGrs6DkpxvxdMQA7qKilt6uUeY5AbZXwMSIlquy1NjV3TwZgsIPcxoA1yAsnT1tg1RYxNM23EfQxombGJQlv0fGnKL967wkiuig9JPB6Px+PxeDwej8fj8Xg8Ho\/H4\/F4nOf\/AepPpxfYc\/5HAAAAAElFTkSuQmCC\" alt=\"Celebrate\" loading=\"lazy\" class=\"w-auto max-w-6 h-5\"><span>1<\/span><\/span><\/span><\/span>\n                    <\/div>\n    <\/a>        <\/div>\n    <\/article>\n<\/div>\n\n\n<div class=\"@container\">\n    <article class=\"flex gap-2xl items-center flex-col @md:flex-row-reverse\">\n        <div class=\"w-full @md:w-1\/3 flex items-center justify-center peer\">\n            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/syntax-and-data-structures-in-esproc-spl-a-complete-guide\/\" aria-label=\"Syntax and data structures in esProc SPL &#8211; a complete guide\" class=\"no-underline relative aspect-3\/2 bg-gray-100 border border-gray-100 dark:border-gray-800 flex items-center justify-center flex-col gap-md w-full p-md\">\n\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/01\/shutterstock_2161779273-1024x576.jpg\" class=\"object-cover absolute inset-0 w-full h-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/01\/shutterstock_2161779273-1024x576.jpg 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/01\/shutterstock_2161779273-300x169.jpg 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/01\/shutterstock_2161779273-768x432.jpg 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/01\/shutterstock_2161779273-1536x864.jpg 1536w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/01\/shutterstock_2161779273-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t<\/a>        <\/div>\n        <div class=\"w-full @md:w-2\/3 overflow-auto group\/content-text\">\n            \n<div class=\"block mb-md align-middle\">\n            \n        <a\n        href=\"https:\/\/www.red-gate.com\/simple-talk\/author\/chisomkanu\/\"\n        class=\"group\/author inline align-middle no-style min-w-fit\"\n        rel=\"author\"\n    >\n        <img decoding=\"async\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/06\/chisom-150x150.jpg\"\n            alt=\"Image of author: Chisom Kanu\" \n            class=\"rounded-full align-middle w-6 h-6 duration-200 inline-block object-cover\"\/>\n        <span class=\"group-hover\/author:text-brand-600 peer\/ftr-image:text-brand-600 group-hover\/author:dark:text-brand-400 peer\/ftr-image:dark:text-brand-400 group-hover\/author:underline min-w-fit align-middle duration-200\">Chisom Kanu<\/span>\n    <\/a>\n\n        <span class=\"card__categories align-middle\">\n                                                        <span class=\"text-gray-600 align-middle dark:text-gray-400\">in<\/span>\n                    <a\n                    class=\"inline align-middle no-underline hover:text-brand-600 hover:dark:text-brand-400 hover:underline\"\n                    href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/\">\n                            Development                    <\/a>\n                                        <\/span>\n<\/div>\n<a class=\"no-underline group\/content-text-lower\" href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/syntax-and-data-structures-in-esproc-spl-a-complete-guide\/ \">\n    <div>\n        <h1 class=\"\n            duration-200 mt-0 mb-1 text-xl\n            \n            peer-hover:group-[]\/content-text:text-brand-600\n            group-hover\/content-text-lower:text-brand-600\n\n            peer-hover:group-[]\/content-text:dark:text-brand-400\n            group-hover\/content-text-lower:dark:text-brand-400\n            \n            peer-hover:group-[]\/content-text:underline\n            group-hover\/content-text-lower:underline\n            \n        \">\n            Syntax and data structures in esProc SPL &#8211; a complete guide        <\/h1>\n                    <p class=\"mb-0\">\n                Explore esProc SPL&#8217;s syntax and data structures. Learn how it compares to Python and discover its scripting capabilities for efficient&#8230;            <\/p>\n            <\/div>\n            <div class=\"flex items-center gap-1 mt-md\">\n            <time>06 April 2026<\/time>\n            <span class=\"w-1 h-1 bg-current\tinline-block my-auto rounded-full\"><\/span>\n            <span>29 min read<\/span>\n                            <span class=\"hidden @lg:inline-block w-1 h-1 bg-current rounded-full\"><\/span>\n                <span class=\"hidden @lg:inline-flex\"><span class=\"inline-flex items-center gap-2\"><span class=\"inline-flex items-center gap-1\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXAAAAFwCAMAAACWx9ANAAADAFBMVEVHcEz\/4jb\/4TP\/4zX\/4jX\/4zX\/4jX\/3y\/\/4zX\/3zf\/4zX\/4zP\/4jT\/4zT\/5DX\/4TX\/4zX\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD7jwP8jwH7jwP\/AAD5jwX6jwP6kAP8kAP\/AAD\/jwD7jwP6jwP\/jwD8jwL8jwL\/AAD\/AAD\/AAD\/AAD7jwP\/AAD8jwL8jwL\/AADJAADMAADKAADMAADLAADMAADLAADLAADPAADLAADMAADMAADMAADMAADPAADZAADcAADkAADZAADfAADMAADlAADyAAD5AADPAADsAAD8AADcAADVAADSAAD0xMT4iYn9Hh709PTy8vL0xcX6W1v+Dw\/z29v2p6f7TEzz5OTz5OT3mJj9Li7y8vL01dX5amrz2Nj1trbv7+\/w6urx8fHiRETz0tLw4+PRHR3v7+\/mpqby39\/VPDzx39\/t1NTODg7feXnqWQLTLS3SEgD5iAPrxMTtYwLYJAHy0tLPCQD2fgPnUQLz1dXwbALz0dHkSALbLQHVGwH009Pz1NTaWlrzdQL8PT35iwPhiIjYS0veNgHqWgLdaWnkl5f4eXnoQkLiAAD1AAA7g98\/f986hN88hd87hd88hN86g988hd88hd87hd89hN\/pAAA8hN\/1ioo8hN8\/h987hN9\/SHfDCA6NOmJXbLbw6+uoIThyU4yWMlROdcTx3d2EQ3BEfdI7g9\/vAADx8fHz6Ojy6enw7OyfKkZpXJry4+N7S36xGSrw6+vz8\/Py8vJTbLdgZKjw6+vx8fG6ERzz5+fgLi79LCzy7e3y6+vw6eny8vLz6enotbX5U1PTJibOCwv5QED9GBj8Jyf5UVH3bm78PT3z4ODy8vLy8fH3cHD8Hx\/w8PD7T0\/5ZWXx8fH9GRn6W1vx8PD4Y2Py8PD6VFTx2dn7NTX1mpr6QED3b2\/4hob7PDz6Wlr4dnb8Kir3kpL6QUH0n5\/3c3Pyx8f7MjL1np76W1v1sbH4e3v3jIz6Pj70sLD4ZWX1lJT9\/f3+\/v7\/\/\/8eaPuIAAAA\/XRSTlMAUND\/4ICQEPAgwECgcDBgsBBAYOD\/sDDQULBA8DCg8P9wIIDgEGDQwCCAkJBQcMCgMKDg\/9CwgEAQkPBgwFAgWMjw\/\/9w\/\/\/\/\/\/\/\/\/\/\/\/xP\/\/MP\/\/\/\/+e\/\/\/u\/\/\/\/UP\/\/sv8Q+GD\/yf\/\/IP95\/+L\/\/\/\/Q\/\/\/\/\/\/\/\/uP\/\/\/9j\/gv\/\/\/6Xr\/\/\/\/9v\/\/\/\/\/\/\/\/\/\/\/\/9AEDBQgJDA\/+CwYP\/Q+KAgcDz\/\/\/\/3\/\/\/\/\/7\/\/\/\/D\/cOqm9v\/\/uv\/\/5kCg6P\/EgP\/Z\/6z1tdaQyP8u\/Jfopsjq97\/y4PHuebDE4tCX1OLs8t\/5kPmyzuiCrMRb63TzqPxM3X7wncE93HGcJ+CsWAAAF6tJREFUeJztnXlgXcdVxmVJtmVbdqynd5+U9CWxkjp5kiqqxM8xjZIWWrOmgN0nu3YlR8ZuwTRQE2hScNlSaAJxaaBeZGOb1AlqaBLiQGkDaUNJoWtYCg0QoCxlKVvZCpT1D97+7r2znTNz5t25787vX\/Xd3Pt5+s2ZM3PO9PV5PB6Px+PxeDwej8fj8Xg8Ho\/H43GPVf0Dg6uTfokMsWqgxpqkXyMzrB2qCz6wLukXyQprGnoPeFPpDuuaeg8MJv0mGWF9S\/CBDUm\/SiZY1dZ7YDjpd8kCawc7gg+sTfptMsDqkN4DG5N+m95n01BYcD9t2mZV2FD84scSq9YPCOm\/zC9\/qFkllrvO0OaNm5J+x55iUCF4U3QfsVAB0LvGoB\/mRAypxa6zOekX7RU2AgX32UMq+oGCJ\/2ePcNamOKbk37P3mEtxMb7fZhCxya14l5vUjao9B72etNymVxvn1MhZ1im92VJv10PIhniQ36rzQJrxHr7Nb0NxLH4qqRfrTcRO0rSb9abSOLCpF+tN1ntBe8um8WC+znTBpK1vQ8KLbBOrLc\/02kD2creC24B8bJnYGB90i\/Xi0ROpgwOb\/aCWyasb21luS4sedIv14u0c4XDrZhkQ\/u4Sn+ib9ajNKKUoeHwxvzqZqjoT4nbYN3q\/uH44aqGr\/i9tS6yafUanyv0eJCM5HJJv0KWGM0HVQpjSb9HRhgZD5qMJv0qmaCjt1ecx+VXvIj0eWG9g+II6bPTz5VXXb1ly1WUT4zoHQQTlM9OO9dc++ItNa4mfOZYPqJ3UCB8drrZet31W1pcTvbUsWJU76BE9uh0c\/kVW0KQeQqjd5CnenSaqRt3GJynTI5OTfFXNazeQUDxwqmmZdwREHHKWKkxcqdHJ5k\/cfQOsh6mXMeqXeUl4N+Phu2iMBEe6TM8vYOsr\/C3cgW\/HvrzMUbQ0vRMfajPlHhyB8GMvW9JB1dwFd8K\/DVf1XxJoHaVKatfkwK+jCs4MDBkB7iSzAt+jYmJT+AF94H49TzBXwr77ZQXHM9LuEMc9lsNwYtWPyYNXM4V\/ErQb2fwgvuVDz8wvA702xFuqC2HWR9lDq6JXwv7rYanZH3l09d3lcGs2ZdXKxzDZ8S5kfiLgT\/GB4Y+X\/gigzBFx8X9EDcIU7RcPPM7yVfzBIdmaHUCldmMRyov5QkOiwv7tIZ4EExlOi3ODVOAcWF1iOsIHhSzLPm1RoL3zWopnhLJb7hxW7nG9pt2fDnZQ7mCQwPxvr5JPcGrAaLzs+fLbi6HmLvplpeRPJYbF8IF1x3iKZD81nKcG19O8FhTwbWHeE1yl7fcdjB6V9m2w3iYmwpuMMSrlNy18jme4LVh\/gqz53IFB+8j92nttIUYd1XxrxDobSw5f5cN8wR8CivMtMnLW+QrxYIbSm4suHiTHoSjQ\/yVMsGNJE9acDdjldyr5IKXyzdrTp\/mlqKRTwnj5tGJ2Z0qwctzX6X1ZKP8bI2cmd5uCj5S\/Gql4NUgUWf9aRwWGjqKmxny0QAieLl8E97KTQU3HeCBk+WEheBrQIKX53ZgH53c0r6Bk2eDqsvnr4UJXi5vR\/pKUskr5ADf2D803L1uc7XN2q+DKo6MV7iCXwH+ueEALwKDwnrHqO71xK2t5XaCBS9vwyS1zDYgDAd4AbjdtqG7jVzq2YqvhwtenTzhg5y7xQYW3GSAF6ehu5vtKz+71MlluvZ6t2EEL8+BBzmnyAe+p6m3w1YnPwpf07db0HWpj3xjKfdqlOLgQc7TG7xrr7WHXKOEOfO2qcv95pqnVFGeUoYug\/gLzWtgb6ZzSqJKEXlSItTpvCt3ZxUar4nzlBo3Ax7OL2QDvpnWAM9PIPOD4ZvMutE0tO2TO9GKb79B+XTuiXzg2UKtAY5OnawLtyXuxhXC7WJI4GIzjDqhZVJzolHkg0\/Gxq4x60Ln504HjG\/AK66aO\/kH8oFRoUbaCri\/s2l4fZP4TRVD1l08tLTATpuNQS6dO\/klJ8CoUGOAw+xbeofwsOVBPh163W\/UUbwsy2fxi6qAh2fxegMzVYqL4oY227woO7xFC8vRMtwqthWuhW\/ReDUYsBlzk1zvxuy5xtJAj6Sbb4NnsCIIbYW\/vwbNFeLX9bApEyJ4lTVWFvrRj9Ic4kJb4Ufh0EwKPnMFzMWuV6tdw0ZQHgt1dYe4KFrhNzcAN2EaFegqBPhc4BAfgr4ngm\/atZtmiJe3cRZB\/KAQ3E0ipvh4aWoiV120T06IzH0c+lzF3ZMtwO8J5jWVSmV+z97QENcLVGrM3cI8nt9MArODPDldXSaUClOjuXDANyJw91nwc6V3T1oc4a+t1Nm3v\/3OWrF4Eya3wo9R4KfxxfAVRyzrIddkW\/Dw11WaLCweaL60\/hBn4sMr+Y4CLWGTUuAJjsjJAq7JtrD\/c3slxNLBup1rZFQ6RI2cu7tG1Cky1pOzASZNqLy02cYlwt9ciXKoZufKQ28ywka+lVsxSNW3kKM4rnmH7KahATubP4dfX2FY3A8+MMGnY+T8KZOsMyebvMUdQZEmVOxs4L+B1btmLd9ipng7IufuZhL2nmU6F+JS4ZL7J23dC\/KtXMErR77NTPHtjfNw\/FUmZXfluOK4XLjk\/slhO3q\/ka93pXKHmeDlufrUyR\/gmL6cSmIrUdxOpkRvwlcM8+0iwSvfYah4+RbhAId27oARUXwW9VOJhdtKiL9JKPjR7zRV\/OatggFOseoJEdqFK+IGuCRIsST4a4R6Vyp3mgpe\/i6+3tADEmDaG\/tF5LFkyVLTkuCvlQhe+W5Dvd98l\/Ups0muvvNZnEWejZDdaGtJcE4Q3uFuQ8HfIhjgtFduNBjJadybJMsX2hH8dpnepqbyPQK9MQWxdpEEhZYE\/1654EamcuytAsHBjWmsI9v0sSL4YYXeRqbyfQK9aWNCIyKC968ZtC44f1lPYyoiQ3FogIfC8M2X1daVG20L\/v1KwbVN5ZggQnFpgDfj8MHh9u2emzpxoo1DKcJlPYGp\/EAKBnhf7UrbDdGUYCubZeVA5w8CBNc0lR8S6e3UAOfRvCbbShnE69RyV\/RyKveI9LYSg9OydvXgQL8VvWXL+hAaOZW3iQwctVnfc\/wwTHB8olY4YRLtHaeVHwEKXnk7Uu97hXrDr0vqRYr3LS6ABD+Cig0lev8o\/LhVD1KrW9u75xBEcUxsKNF7yz3suawM0Ty3tPvgklrxH4MLLg5QtrwFVvPWo4Tqew+oreV+uOLHRXrfdaz61xuT\/u7EiO697tmnsHHEJr5I8Xvqf82s4vEzSwprwdg4X\/F3NP+aUcV5hQVSa0HYOFfxe4+1\/ppNxQUF1fvF1oKJxlnF73pb56+S+qveRVgctvfgvMDGMdE4o\/jx8F+3Z09xaZu0A7u41nI3JqkSU\/wd0b9mT3FVMR7XWlBJlYji98b\/mjnF1S0aeNby45qKv\/UY89eMKQ4rxdu9Kx4ponLjbcXDE2ZGFecWx3CtZTE6caIOMR+X6J0txTHVvXv3hK0FNXE2FT8u+GuGFEc2fQlbyzsxgtcVF+mdJcV5xV9y9rcXobhN5eMSvbOjuNYNFu3UOSJxWOXN0r9mRPFptbxcdj+whF1xqsiG4gbt\/Wu7cualERlTXOfm8g5VazE9N541xU27nwe7f4JS8Z7P1hr0zm3zk15xOOgOOzx2esXB4INwDrfp9JPMpuLG9yk0FTdpqZIpxbW7ccd4l3YrMh569zGlArNr+8KKUwpelp\/JOhHmZJeUosH4CqIOJp2xYIqfOr185uzZn2I5d\/b88oUTXRdPB+MgPMRPkyoevVDixPL5BzlKx3Vfdn28v+HdB9RCgtlJKfhcq1XWydNn1Fp3ePDiaYdFf1OlMn9wr1rKxBR\/6GGehShFXz6VtLJ8mlUmoRaFZtCG43M\/c+achtoNzp1xUfN284iFXTTWQqj4ynse0Va7qfnDznnLz4a2J2msRb8zcJT3PmqodoPzboUu8eYRFNZCsgB67HESuWucu5C0yiF+jjnaQ2AtxoqvPHGJTO4aTy674iyHGb1JrOXnnZLbJcl\/gSu4ubUYLDltyF2X\/OGkxa7xPpHgptairTihd8c5dzppuVWl3ibWorfIf69pHCjn7EMJC\/6LcsGNrGUnXu6VR63KXSNhK3+\/UnADa0Er\/gE75h3lXJJhubrfkpG14BRfeaoLctc4gx\/kY7lcDtkAkcsvAQXXtRaM4l0Z3g0eRKZYGnd5QC8KlwDpt2RmLeC0ysovd03uGqgIsd0de9ZUcGEQLgJtLdBE1tN2gxOW83BbmewcA5wxFPyDWMEraGuBKd5FO2kBtpXwnRIFM70\/pKF3BWstEMWf6LrcVZ6ERSuROzzyZoI\/oyd4BWctSsXxwffZi8sXwjv1p06cWF4+i96oAOUQo2ekjCKVw5AgXAjcWhSKr6Ds+1eWT4sXiycevohS\/aJapNgGO75bcwhoEC4CbC1SxRHT5YefeFp9POjkBYToKsWZu93QV4eH+VVDwStga5Eo\/jR0unzqsZXGL6RXLTc4Bd4HjSs+M1sqTU2N5hpd9ceYM5cmsyYuCBcCshah4kC9H2mpXWXuFZCvO3XmSdCTH4yEh+EBPc47j2Yyaz5LIzjMWgSKg\/S+9OhHIj+C1kdcAB2uCCk+AqgNNpg1f41K8ArEWviKA7Injz+xEv8V+FztqYsAxTs5csiZVoNZc1rSeEYDlbVwFVdGKI8\/xvt3gp+rfUgpeSg2hJySn9YXPC9pPKOFwlo0FL\/0Hq4RgSZOoOThWBygN\/LiwjDNujVB4xlNpNaCVpw1kxawibPJKYmXR9Y+EMGDCV3BOxNy16wFp\/iHP8L5X7fYjvrW06IoMbrWhBXeaIbikbq1blkLQvFLXPPugGvnefIMQG9oIUhJK2cYr1ujtpbd3HcFK\/6U0E1aIFvWnuAM8nguZQRaCZIfxUeHJfYxxNayh6v4qyGKCyfLEHM3qD8yzElm8mRzV\/B67OIU7kY9Qd0asbUs8qxlp1rxR55W661RH34huvbkbfpwhqGQWdSlekK7orWWJY61KBV\/VGknDdB1hafCRRTcvBWuicks4r8tcyvb1qJQHGAnTdCdx0+el+uN7WICV1zxL2nZWnhV+S3FVdFJGFQ03uCMXG\/OjeFSwAt9dd2aVWvhnTtsKH4JZN8tcNF4nQtSvbGtv8DZWtC\/o0VrESmO01uruf4Fqd7IIuES8D8KbR5hz1r4imP1RiVVWpx4UrrPgypahQoO7glpz1p4NRIrssU8nzmN3kHyA7SoTiZAS0G2o7FjLUSNEG7CCy4H1egBePgN2RPSkrW8i6a6kLrnBGrtA3ymTjsaC9ZCU8+pERvKwPy\/H5qp1eoJGTBNfg2pWsttr6JQ\/FZSweGOkgcnDXV7Qsab\/JpStZadFIpTmgp44VNEpMWN2tGw\/cNNWPp1CsWReUMZ0AE+jcjPmvWEDIitBdeZmY\/GglMEbDAWULlZgnY0lNZyB0ET1R1UeoOC8CLuqARFT8iA0lpw\/d65kEUqkAE+jsqDE\/WErENlLUfNWzMTRSogt0XqjQrsVRBZyxGdO62j0EQqEG2wpwuJekK2obEW5IW\/LDo5FRbIB2OPXlH1hAxBYS3GwQpJTgXytdiDQGQ9IcMQWItxsKKRqNUSHHmaU3dZr8TYWu5GXQfEso1AcIiH4wR\/40dtCR4YW4vpPRIEwTikRSnuic9UDu2h61DIYGgtZlMnRTA+006l5AtTOU6ND1bwj1VqOSOqDoU8jKzFbOqk6H89MlsqBaWpmfbaPRfLZo2jHteqW1vaxT\/6R4OBtZitOinmTYaxqOLQXcwGH+982ryb1mK06qTNjPMVR5WxxerWnLSWIyZG\/nK1BhpMhnfIUKfDmeYRTlqLgZFThIYcwuX2qEzKJzif56C1GBg5+rQhVnHUwl7Uwc05a9FPZlka4i3Fi7h1\/SeFX2jbWtAb\/rj7Iu0P8b6+0UKpMIXMzL5P9omWreUQUnHd1IqtIa5DvI0yg11reQBnLbrxobUhjkfdE7JqLZS3QcS5D2ctqPvbHRzih2GfSXkbBAPOWvRsxU4srgG8HQ3ZbRA8MNaiFa3YWW5q8CnE2KK6DYIPwlp0ohXas4baYNvROGItGtsSGlURNkD3hHTEWo6g5865pKVuoNMT0g1rQc+dTkybisbsYhywliP34wQnL4rQQbysV5O8tSAHedJi1\/iYgeAOWAtukDvgKcplvZKkrQUzyB2IUz6u+h4I\/IYcRCitBTHICc+La3KYQu+KqCEHFSpreQ4ck5McNDTBtMtsCF5DDjIU1nIEuvC0sn2P4TdI6ywTtJajsOxK4jnaaeI6ywSt5Q6Ir5CVoOjSODJLWsKdnLXcqY5Xkha8XUlBW8KdlLWoj64kLXj4RGKKrOWA0FqOKkLEhAWPV9eS1llatZZgj8gFn5POntQND5CwdWu0Jdx2reWgwFpkkhOWJuvAPddPWsKdjLUcFXl5whvJwro1Wmt5IAFrOXonN0hMOAyXtKOhtRarxRUia7mDnT8pDuabIK9bI7aW++xJLrKWI++Map50rlBdt5Z+a6k8d+f9DXP5zd9KfNMe0jyiB6ylzsLibxtdJUUCsMVN+q2l+g\/9adPrFwlAtKPROFYsptvWsrTrdzS6qFsA0RNS51ixjC5ay+LvYhuo2wLdjgZ7rFhKd6xl\/jOfxvYwsQe6J2SAPlYsx7a1LOx63vxuaEJ0ekJSW4vN4orxCSeMu41+OxpSa7FUXJGfdsdKmuj3hAyorYW8bmvWgRiQwbAdjbvWUnIjBoxj3BPSTWvJuxIDMhD0hAxcs5Yi7v6croK8skPMXuFWlw4m1lJwKgaMQ9cTUpE0QqNnLa7FgAyoZb0a8S66BmhrcTAGjEPdEzKQ7KLrgLEWJ2PAODrLeiVJWIujMSCDlZ6QAbG1KIsr8hOuxoBxrPWEDKitRVxc4XIMGOfZ37Oap6O1Fn7dViENxt3m9yuWtwAsW4vzMWCMVmGm1SYo1qwlP50W427zTPs77PZX2k17Aro2PIqpiAHj\/IFg7FiA9AT0YlpiwBhMYabVcmKq4or5F\/4wdVbS5I\/Yr7FbTmxeXLH07o+mJwaMc1gwgqyenjexloXFP06jcbcRF2ZaPT2vay37PpuyGJDhT6SDyS1rmX\/hT9Nq3G1U\/ZbsFuZgrKVq3Km2kibPqr\/U7iIUZi0Li3+WzhiQ4c9hn2vzHJraWvZ9LrUxYBxwvyW759BkJ6DnP5PiGJDhGeF3cr7crrVwiyuWdj3fC8bd4S8Qglcs57eY4oqFxb9MewwYB99vyXJ+K2Qt+z6X\/hiQgbOsV2M3v9WwlqpxJ1+CQ89hHb3ro8+utTzwfI\/EgHEM+i1ZzG+lZy8YjWxZr8bKIrTo\/iEefbBtlFmo81vp2gtGA1jWKyHMb433qHF3AC3r1ZAsQlO4F4xGu40yi2F+qzjbizEgw+1\/Rae4SX6r0PNW0mSStmBBbxHawzEgQ61ujbYWCpvf6ukYkKV5ZJa2FgqR3+rxGJAhdAif2loAkWLvx4AMkUJBamuR57eyEAOyTMVUILYWYX4rIzEgC6eOitZauPmtzMSALNymkMTWEstvZSkGZBG166C2lj0tK8lWDMgi0NuCtdTyW6k8yE2LRHBia9n32ewadwhVdT1Rt7ylF\/46y8YdgjtpRjFuxLnw+b\/JaAzIASC4YSPOQ3\/rdEOHbgPtuaRpLUt\/9\/feSiIg6uvR1rLw+X\/IeAzIIQcXHGkt81\/4x6Q\/zkmQTYCA1rL0T\/\/sY0A++KY0amv5l3\/1xi1Ep+2S1Fq++IV\/S\/qbnEazsZjAWhb+\/T+S\/iDn0W6dx1rLl\/7TW4kag05XEWv54n\/9d9KfkhKMukM2rWXhf\/436c9ID5OG7SH3L37p\/3wMiMGsm5u7jV3dBZTB4pLZvWAzdHvOut3Y1WXGNBQfz\/ResCnY9WYKGrs6DkpxvxdMQA7qKilt6uUeY5AbZXwMSIlquy1NjV3TwZgsIPcxoA1yAsnT1tg1RYxNM23EfQxombGJQlv0fGnKL967wkiuig9JPB6Px+PxeDwej8fj8Xg8Ho\/H4\/F4nOf\/AepPpxfYc\/5HAAAAAElFTkSuQmCC\" alt=\"Celebrate\" loading=\"lazy\" class=\"w-auto max-w-6 h-5\"><span>1<\/span><\/span><\/span><\/span>\n                    <\/div>\n    <\/a>        <\/div>\n    <\/article>\n<\/div>\n\n\n<div class=\"@container\">\n    <article class=\"flex gap-2xl items-center flex-col @md:flex-row-reverse\">\n        <div class=\"w-full @md:w-1\/3 flex items-center justify-center peer\">\n            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/from-python-to-esproc-spl-part-1-how-to-set-up-your-data-analysis-environment\/\" aria-label=\"How to set up a data analysis environment in esProc SPL (compared to Python)\" class=\"no-underline relative aspect-3\/2 bg-gray-100 border border-gray-100 dark:border-gray-800 flex items-center justify-center flex-col gap-md w-full p-md\">\n\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/shutterstock_editorial_2496915105-1024x683.jpg\" class=\"object-cover absolute inset-0 w-full h-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/shutterstock_editorial_2496915105-1024x683.jpg 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/shutterstock_editorial_2496915105-300x200.jpg 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/shutterstock_editorial_2496915105-768x512.jpg 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/shutterstock_editorial_2496915105-1536x1024.jpg 1536w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/02\/shutterstock_editorial_2496915105-2048x1365.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t<\/a>        <\/div>\n        <div class=\"w-full @md:w-2\/3 overflow-auto group\/content-text\">\n            \n<div class=\"block mb-md align-middle\">\n            \n        <a\n        href=\"https:\/\/www.red-gate.com\/simple-talk\/author\/chisomkanu\/\"\n        class=\"group\/author inline align-middle no-style min-w-fit\"\n        rel=\"author\"\n    >\n        <img decoding=\"async\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/06\/chisom-150x150.jpg\"\n            alt=\"Image of author: Chisom Kanu\" \n            class=\"rounded-full align-middle w-6 h-6 duration-200 inline-block object-cover\"\/>\n        <span class=\"group-hover\/author:text-brand-600 peer\/ftr-image:text-brand-600 group-hover\/author:dark:text-brand-400 peer\/ftr-image:dark:text-brand-400 group-hover\/author:underline min-w-fit align-middle duration-200\">Chisom Kanu<\/span>\n    <\/a>\n\n        <span class=\"card__categories align-middle\">\n                                                        <span class=\"text-gray-600 align-middle dark:text-gray-400\">in<\/span>\n                    <a\n                    class=\"inline align-middle no-underline hover:text-brand-600 hover:dark:text-brand-400 hover:underline\"\n                    href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/\">\n                            Development                    <\/a>\n                                        <\/span>\n<\/div>\n<a class=\"no-underline group\/content-text-lower\" href=\"https:\/\/www.red-gate.com\/simple-talk\/development\/from-python-to-esproc-spl-part-1-how-to-set-up-your-data-analysis-environment\/ \">\n    <div>\n        <h1 class=\"\n            duration-200 mt-0 mb-1 text-xl\n            \n            peer-hover:group-[]\/content-text:text-brand-600\n            group-hover\/content-text-lower:text-brand-600\n\n            peer-hover:group-[]\/content-text:dark:text-brand-400\n            group-hover\/content-text-lower:dark:text-brand-400\n            \n            peer-hover:group-[]\/content-text:underline\n            group-hover\/content-text-lower:underline\n            \n        \">\n            How to set up a data analysis environment in esProc SPL (compared to Python)        <\/h1>\n                    <p class=\"mb-0\">\n                Learn how to install and set up esProc SPL for data analysis. Compare esProc with Python and its unique features&#8230;            <\/p>\n            <\/div>\n            <div class=\"flex items-center gap-1 mt-md\">\n            <time>30 March 2026<\/time>\n            <span class=\"w-1 h-1 bg-current\tinline-block my-auto rounded-full\"><\/span>\n            <span>23 min read<\/span>\n                            <span class=\"hidden @lg:inline-block w-1 h-1 bg-current rounded-full\"><\/span>\n                <span class=\"hidden @lg:inline-flex\"><span class=\"inline-flex items-center gap-2\"><span class=\"inline-flex items-center gap-1\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYYAAAGGCAMAAABIXtbXAAADAFBMVEVHcEz\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/AAD\/YGD\/oKD\/4OD\/\/\/\/\/wMD\/kJD\/EBD\/ICD\/gID\/8PD\/QED\/cHD\/0ND\/MDD\/sLD\/UFDmAADFAAC8AADeAACKAAB6AACjAADVAADuAAD3AACTAAC0AADNAACbAACCAACsAAAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4\/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5\/f3+AgICBgYGCgoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6\/v7\/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8\/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39\/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+\/w8PDx8fHy8vLz8\/P09PT19fX29vb39\/f4+Pj5+fn6+vr7+\/v8\/Pz9\/f3+\/v7\/\/\/8dMLaUAAAAEXRSTlMAMEBQgGAQkMD\/0LBw4KDwIM4SFawAABb0SURBVHic7V1rV9s4EN04Tuw87bZ0W\/raQiAQ2gL\/\/9etnZASSzN6WRqNg+6nntPYSLqa90j+55\/hYJTtMc5xTA4\/yUaxx3pemGZZnhdlWc5cMG8eXDTkLBtiprGnMlgUK6fFR7Eqy3Wej5Oo2GG68EvDC6px7IkNDUUAFsqknqwx8c5CHntKg4RnHpJCcsSo8sjCKllnV3jkYZ7MwhFtcFVbPTEiZqE+6\/BvOs7L+XFFVmU+rk2f9GQf9CyMJkX5N1Yp18us14QZIivm8rqs1mOz\/emFBw0L08kC0H6LZe1h9jwwKnD1vpiYvMFD\/KBkYTrBsyXl5CwsimKGe1RFrX+JW07JkIXRWu0FGI2QNyYmeaF1rXvNtGd6aYWzkJlQrB8hZ2SARXCbZj+3tUI9n5GhnFX5YFXTdG2xUrppLp3W\/wWYy2MzwtVAA\/Cx3QZeadzDHunWpZ8RrocoEPbeTaGc5tRZLa2RF1oTO7xcyNTUKpxirpzm2OGN+7fC7GYOtFZG7jUfjNw8G\/U0HdUSzK2jrRlUntzdr1FN000twYbBxnvoANFwHNHHu1RN02UHl9CL+pRXB8NDPx9fNU17VVfVwGucDJfRABmh7lkgUEwzs34ZpOT6sYD7v6zQd5JKHmxzSyvoJb0bPobgL3noasHttK04QCGhs3X+Czw3wga9kg5H4NvNThwg++xjgOyrqX4qlvh2sxMH4DX25gVCEXINPaC3YTgAT0zbiANgZNxTIl3wro\/mfiapMNM2KY1afrx3\/egFoO3nAl97rQGaVjaPHQAqvViuPThnNfo7IX9RYWrJfCVly9A3pDEZX3zU3iY5w63g1PQFgJvks0U8ojjUh7M0NfLfHoVhBmp2q78ie71+vKQXoOIwUq5RP2TLdXki0RXUTOVVGJCk3D\/GRhowor7s8wGSONSnDXEN5ovcsBHLCPUSEWahmcqbm\/QCzCk0U\/CyUvMqDCLP4zXsO8wLLzXs6UQZCsxPmqk8n5FCxcFMK9XSc36F4dSZy5SdTtW6b\/Kj1nRS7f\/Iy4Rdi5Q4kNEb\/aG59JhnYWiUwcuLDXqx5n2ygbWhNTwQ4ddA79+LjMtEK8nZaP8n6faKIDfTkStXIqYWvRVtU4XP8yAvQAycyYLW4kOeHYgWY8OuxAN0HUAw7Jp4qrF3mZ+hBRaDDm9ZJ\/kLoP9iXduZm4W0N3Swr9YGEAZgMfcw2Niyn+Qp6XiKynbOtkfvXJp4QgDZPnpNEDqocYVV55\/\/c7COQLSSXlSlRwLoJCfMkZ3FmYW\/PqHtmsohh++gwRlgr4g9C+\/ef7i4+PjvJ5pBwyPUugNy3o1isAd81vy\/YQVVxcKny4aDPb589Tl0FIiTp3tMMoUh\/DgI3z5etJtUSYURD6pmr3dfLl5BwgNiHHQ2uhYf8J3vgvH5+3Fx3quIQFTtKRQFtB\/fL07xwf80jEesO08nPRDmMhoBn053qUpt62sV+AQvLwR8CzATEUjkoNncsoUOEDXI+K+zPF9+4r\/UxQ\/o\/D59F1m4+C\/EVETAw9S4SnLwRjHUH+ICvUcFQlNCRduMfnyRWKDRSjU4To3FlSsyFEN9J63Q9x\/Yb9XmAZNdiIWLi0DT6QB2lTQ0xHGU\/pVX6AvKg0otYbIOs\/A90HQ6gGnQ9AVID5HQ8B5YI9SvV6glzEuCWbh4H2xCJ0CcCvVDten+8opv0CKh8oD3XyIFhk8wCzSBgxMN0s9Jwoav4CqhPEh75QWYHZN9pD3+DTWdDhAa1BngODTMPoLr9AHxl7DaIlLFlOKFA0jcVZQGdfwWiYbPsNr4iPwcFgfE7MGi9oEmpeRGg9yiREPD7CfMwyX8a1gckKFCKunDu2AzEeFCgxxEE9Ew+wR5SxcXiHkAnSVY3UIqiSrL3cIPDXQVlB+QgUBce2hucPcP4CWpciX+gfSVWNJAledu8Q3QTHD6DTokAecgZWHAA8MgQAoOjGk4SXe\/LhqsP+R+ONhAy8JAzALWuad+yHB2oQBYiEvwh3IIB2tPSRioWUAyrLY0hOhlU0HiARYHWSvBQcMH8XWkdmGG1husaSDuCJDLArBvKck6WFb8Kb6MJnI+AZIQ1iSua+mBEJ8gUEHS5rCzJNZ44UKDKFtYXB4OiL+qMbmyXSdvU5J2MKjNxV0GmwaRUmqVhDpKmnBMbiQgdZX2+E9YO1CRiEVzUGjFPAaWHAkIJCuvaeIHksg0wz3BZ1GTgL+qu6METZjoJ9ELA3YKXGNxgXNCJD0BHYgaHWyZEYpwoEMnxOUktecusJKt5jG5QSbAIRgdRHEAfaXcYF6CaSB3k9BuMe0FKbX0SIRWYmEXg8XKbpYVtGAindSR2wy10NrTb\/Jz9DZaLIqCLmupH6Rgob+EHTQImAV93hrwcymG24W4jaHfdGkA\/VWh7yaCn4QdydXGxIBNidBZL+QgQBut316Co3QZdMggsF5P7YOAh0VV+TmBYBzAguUQaEBMg8EVZrX0UATjcBmCBqrq8wkQYTCopQFNceGHK0JYQLD2MwAasKjBIAYA4mh64yAY10voNwOgAbt31uBIOGDc6Y3D1\/OgAam8GbVny4\/RG4dvtjSA8VBsE40llIzaLADrTn7WW1hAMJuh3ykmZIYE1mxrlB4CfF2Sg1enEDrtIXViH0WTh2\/YEQCj20IA40B+3NsgbhCGCb1FOEREncwA0qR7GJ7ckR+kbc9o0F2\/C6h0KTRQgnpTeA1xag\/reDbc1IAsEdccxKoZ9BtBd4JOtdBeQJzoxu6BMlTxgGUhTnYLpgFU6oInARZBhfcQl32wU0mGDg\/QWkN8i4yQ2QN3cW0g6WJ3AV0f9wwPoY3d\/1p+llQrmayeaP\/AjfJJeBGpr4TpJOOOI+AFpFpJbO2GLLS010AvUGzyIDTSmJ9kvqMBcaLUSqKBBotvUroGjInEA9cU1zO8APOTLFYSMC6EWkncwuDaSekaMJ0htgBeBh14B9g1jRZ6BXBZCbWS2GoH1d6AdA3ogLyPRQP6mQqL\/Qx9zCTciEWY2FXAqQa1klDVpusXw8qfNtodMi90eSWBBtDLBFLIcNNJx9wjZ1ZCoEZosNIqgFbyf4M1BoPLp0CRB32lTl6JLoxGL1ixsrGQmSfLdnez3KAwgGUtuDp14ix9pxMGLLlq53FCWonsoEPHvQG9Vfj2EuTikncRWEANtKWnA7BJFzr81G1gxCdHNsrn9y2v3wljBvwuOku\/H9JtdJ0Bxwsiv1zCG7iG54h\/B+rrV9pjPuhnczy8iM5Izz6\/u\/z29StWw0c\/bRehsQ0EOkBrxQ4ZQd8fXXEFIgxev57XC+g3WKzHBx0kZXJbt+ISUB6Xc2MNxC7DAxjlsdnwr57+w+RCcfSrHw4hMKTf6A\/+AFDexOrxa43OwE6kO\/makG\/O4VMOmvuhGShO9FtETpEX9Lb44qBUSS3Ie6qkEaJDc5JUSLbii4P2a0tT+pOrXaDC4Og\/QDOObQKxHukTqD4cQABcGBz3B2SkIxw50Q2J2RhRYXAeVg28LKo4oD5IFzGjB1wYnO0qFCfF3GqGH5WJygNqu9zNKphPjueJGLPQ8BDLPqABdB8nEzKI0ZwlCxbi2WlUGPpkIEBFFyl2KO2+4x3Hb8Vjy17JX8jsxxEHIx+pgxjbpUZ3RS\/pBMUhRlZf\/2klGfQGAh9lzzWDxIE+0Vq5fTJ6RKyY8A989F0yUByo\/cGV66fsp7SKCd8svRUI+GraXbawM84dUCom3Fntrz9AcSCN4VzMwitqui2Dy6wHawqKA52wOyskn2tgBHy7+DCmYIKfzEr3UUhH0FhqRSHES6MdyDJNkcv20\/UYKAQCL4T4CbRgN4wi0+pDFA4ILxD4V9B8aXDwL1j3n1nDlygckIdVowqV5M2fqcF5+Xo7gsKbKBxQB00NK2qz3vQG7BAHlfNSW3O2xzhc16FCJXmMdcE1CaiWHJMXWoTSTAqVNPXIPVzZC6WWqtyzPnpFHSbgUcQ2XhcJDk3CqKV1HYaCA0YBXDxFnO+3KlCBSxOiUzEsCS0y37sHzyV59+vhspL3VGt4EvbD9mqrFd+v9n8kBHbi\/TqBNCS08EmEwqfzn\/NBTv35m05FR0ILb0SoEsABHALYNfblta7CeUcYMi96W9VgHqQeAAufF\/MwDxQnaJD1362qrh2fIcMrkBil91Sqde+SgjPqop\/2rlRDD3SQHFZLPRuC5hNybdQd\/qTP+FXZx2AlSviP9ogeqiKeILxitHadgarNP4xKaoF4yI60V2uvmew+mE6cPG9lC1vAhC7iFriY6UUcq4yiXlorJ2Wbf9Cz\/IgUWprpRg7iGgQYlkwoW5vDnkjFPAMLCVwVbHSRDAsm4DTbEYGLrsgWMHWXyiUHm6zEdGJksZWuavgeBMQsGfgFjRhwVEUQRrkuwlazQNBOh5hW9bmO1XpSB1iukMjyUjElpWKl6OLC9gHKw3x4FBwxmhSwWKjdvKjtaYAkVmWeDUURoRhN8lJQuWoWiG7Dw6pN3fChLAYrBBCycb4+sqFmgezYAdYO8jKAVZmP2TtEjphm2UTtcBMefsS2w6QslsPXQr0QLpUkQ+2uvWmQnsBRh5DOGBncTMIbxMdPrc6KG2IyV\/aaDAHkh2R9L9ihDjZwGiLc1WF\/XhzHdFKGIRdEUQd6cfjDBiF5yF5zaSQ0zGaLIEneSPd0eCnc1MWph0dEQ9uQU\/t+bbRLL3vzIKX3yWho\/5bf+l\/EO\/56TQQqsVDS0FYB\/R1miXrTojMPoxwcNi0Ns7YIUnt5Z9z7Lt3C6XGBRfzkNDSYL+ver4x966g1D6Olqm4dg4aZByaiXxOsvSX4BPVkrUl8RaKhwbxP51p0FozTGnoKWsSjYdZWah3DCQYsmIRx2XJhmP6NSkOLhYN6YnA7ewvFoeCGgbWN9YpOw2wvFFZ5Sx6f7pghbutonC+s\/QcONLSYmzfzRL4u+xQdnTrNJg4EHMCFhhZzo2J65IvZO3hxW7NGAPqdZOJEw35iC01rCY\/v7BxR5YWqucoY3GjYY4VzETtsCwSWNOxRlflEzkCdJwuMaTigKos8e43zWAQMAcCdhhfMW9GY0n2slhoDoeHckWhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBs+4ut40uL6xeyrR4BWb2+0Rd\/cWz7Gk4abFzvap+Hj4tT3FL3ORYEfD1e\/jXG431usQGV0WGvwxfZIZDX86M\/nlshbxsBFZ2G5NFRMrGnaPwiwGJQ8PTzINt4bPcqJhJ83j6cF1TSLgj8zCdmv4LCca7uRZDEkcbuXhb58Mn+VEAzSN4YgDKAyPhg9zokG0DIMSB8gymA+fEw2\/oYnsHJeFGoCb1MA0cuBEwz00kWfXdaEFLAxbU53KiYaHXhsqLmBhMA58ONEgR6EtTK1cVOxAFra\/TZ9nRQNoHMwzAhEB+NotjLN7rGgAjcMQnNYbmAVj08CLBtg4mIt2NIDa1EafsqIBk23uVvoaEYZr4zfwogGZD\/NMq5wLe8HO+BW8aEAcDuaxNCLDxunVGTcaMCW7vbJfHDLAjsXWyqYxowHTsozVEhI\/2+0dZjRgWomxWsJUko1O4kYDqpXYqiVUJVn4SfxoALP2LX7xDOJwlWSVG+ZGAxLBbbkGcahKssuFcaNh9ozOy6b9igqYS7G1TIWxowFLz2y3TzurFaLAFa6STKvQB7CjATfS\/LzWB3ysljqUHw2okeZXicMVqG3xlh8NM1zQmZUeFBtme2f3KoY0wPXEAzhFD1eKcdomhRnSgPusrEpAiojBvnLLkAalyuUTxSnMs32FhCMNaGKpBRczrdorVumkPTjSoJ4ij2haEbdtHVwJljQoxYGFu6Ryklx6eljSgHTKHBE\/q6F0klxq5zxpUHoh26fYbqsih+EmDExpUMYO0XnQsODSSMKUBvDMBhMeVJmkFi6+HFca8KJWbB50LDglgrnSAJ454cCDjgW3qjlbGtROazQetCy4ZePZ0qCx0g0PMeKHK7XN2ro2evKlQWOlt3atD36g85GcY3zGNODl0COo80t\/tCzcOmYeGdOgiaVb0OZbdWpy6957zpkGdS55jye6nvsHvBfmL5zTjqxp0KRu9qDqqtQb5z7CyZoGTTr5Ze4759d7HkmPEi1vGhRNca94Cu8xPWiCyQN6jIM5DQ8GqmC7fdy5\/wUT3Gs9pBaWzRgdMKfByDw0AhHSQki3PMHo5bVxp0FT5\/qL22Au08ZIFHomV9jToC5MnyCMZrox0orbviVB\/jTocq2veN71+0Myboz\/dk83YQA0aJOaoYjYmQpi\/7TKAGjAzx0HJeLGnIT+16sMgQaDxObpknhp3Lg3VkdbH6mtQdBgx8P29nrX7889XJsaZk8sDIQGU7f1L+561ITuLbRRC9fk9ikGQoM1D9un53uX5bl\/thK8radq7FBosOehwd211RI9\/LHmwFdNfDA0OPHQaIxnMyp297\/N\/WLvLAyIBsMEG4TH39c3uIa6ut\/cWZnkE\/gq\/w2IBkt\/SSbjsf3KyMuXIa7af2w2z4+uBHhlYVA09OXBO\/yVwgdFw2znpL9DwWNjyLBoMCyD0cBnjWNgNJjnvUPDb9Pg4GhwdFx949ZvC+3waDBqVQmNR899agOkwahxKyy8l76HSINh11AwBKh7D5OG2VVEz\/UuQOPsQGkw6TMOg6cgx4EHS8PsJopAhBCF2ZBpMGp094zbUCfjh0yDaT+dN\/wOdpxi0DTMZveEMcRjwEOPA6fBuLexN4Lpoz0GT8PsgcJE3AY+djp8Gqy669zwtAl9xu4caGiJCKiabv+EP+h4HjS0qikQEaHV0QHnQsNM\/PK6H9wRnTQ9Ixpmsyu\/uul2s6Ma+VnR0HZ8eYvoninvkjszGhrsrj0opzsCs3yK86Nh1jLRpzDk2P3aC2dJQwvHZsjHTZR7ms6WhgYP979tLMXT3SbaVy\/PmYY9rv5s9A2Sv+4297uYozx7Gg64utls7h5F2Xh6fHzeXO97WiPjjdBwgt3NHrGH0cXbo4ElEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhZINLBAooEFEg0skGhggUQDCyQaWCDRwAKJBhYgoWEVe5bssaagYVrEniZz5BQsNMiSQOCYj4hYaAQijz1ZtqAShQPqRez5skRZk7LQICtjz5kdVmNqElpMkok4RbWMQUIiooMqn8ZiIRFxRFwSWiQbwYCEFqN17HWIitUkNgFHTJdvVjctstiL38H4LQYSVVHHXncJ0+U89rLQYsFGGwkYFW9GOa2WdezVVmG8rmKvUHisCrr8nTPOnIlBcHBAdq7aaUAcHDBanl1cN18OjIMDpuP12QjFaj3hECq7ol4uhm8pFsMUAwGjIVNR5rzi5H4YLYenoKrF8pwoOGI6zgdjtufFpI69XiExmhTMuZivz1IIAIwauWCoo6qymLwRBl4xzZZFycV2l+s8q2OvSExkk3wRUU3Ny3z5tgk4xbRhY02pqKpykdYfRZ2N87wMx0dVlkU+yc4hHKNB1hJSlKUHhTUvG9XfLH425HwEA9TZnpQDLQ0Udb754RdF++tx81gde+wm+B+k58k0Xd0UIwAAAABJRU5ErkJggg==\" alt=\"Love\" loading=\"lazy\" class=\"w-auto max-w-6 h-5\"><span>1<\/span><\/span><\/span><\/span>\n                    <\/div>\n    <\/a>        <\/div>\n    <\/article>\n<\/div>\n\n\n            <\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to install and set up esProc SPL for data analysis. Compare esProc with Python and its unique features for working with structured data.&hellip;<\/p>\n","protected":false},"author":342096,"featured_media":108362,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143526,53,146042],"tags":[159117,159374,5021],"coauthors":[159002],"class_list":["post-108877","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-featured","category-python","tag-esproc-spl","tag-moving-from-python-to-esproc-spl","tag-python"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/108877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/342096"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=108877"}],"version-history":[{"count":9,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/108877\/revisions"}],"predecessor-version":[{"id":109420,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/108877\/revisions\/109420"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/108362"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=108877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=108877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=108877"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=108877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}