Якщо CommandType має значення Text (за замовчуванням), це текст оператора SQL (наприклад, SELECT * FROM Customers). Якщо CommandType є StoredProcedure, це ім’я збереженої процедури, яка виконується.
Коли ви встановлюєте для властивості CommandType значення StoredProcedure, ви повинні встановіть для властивості CommandText назву збереженої процедури. Команда виконує цю збережену процедуру, коли ви викликаєте один із методів Execute.
Функції не можуть нічого змінити і повинні мати хоча б один параметр. Крім того, він повинен повертати результат. Збережені процедури не приймають параметрів, можуть змінювати об’єкти бази даних і не потребують повернення результатів. Збережені процедури об’єднують SQL-запити в транзакції та спілкуються із зовнішнім світом.
У Postgres основна функціональна відмінність між функцією та збереженою процедурою полягає в тому, що функція повертає результат, а збережена процедура – ні. Це пояснюється тим, що мета збереженої процедури полягає в тому, щоб виконати якусь дію, а потім завершити, що потім поверне контроль абоненту.
У PL/SQL існує два типи процедур. Тут обидві виконують спільну роботу, але мають деякі відмінності у процесі виконання та зберігання. У збереженій процедурі специфікація процедури зберігається в пакеті. Пакет містить не лише процедури, він також може містити функції та інші програми.
CommandType може бути одним із таких значень: Текст, StoredProcedure, TableDirect. Коли значення дорівнює CommandType. Текст, властивість CommandText має містити текст запиту, який необхідно виконати на сервері. Коли значення дорівнює CommandType. StoredProcedure, властивість CommandText має бути назвою процедури, яку потрібно виконати.