Параметры SQL-оператора
Параметром называется переменная, используемая в SQL-операторе.
Применение параметров позволяет формировать SQL-операторы непосредственно во время выполнения приложения. Так, при использовании многошагового интерфейса, при котором процесс компиляции и выполнения SQL-оператора происходит как последовательные действия, достаточно откомпилировать SQL-оператор с параметрами вместо явного указания значений полей таблицы базы данных, а затем многократно выполнять данный оператор с различными значениями параметров.
Например:
INSERT INTO TBL1 (F_ID, F2, F3) VALUES (?, ?, ?)
Параметры могут быть именованными и позиционными.
Позиционные параметры указываются символом вопросительный знак (?), называемым маркером параметров. При выполнении оператора вместо параметра в соответствующую позицию SQL-оператора приставляется значение параметра.
Согласно спецификации языка SQL маркеры параметров нельзя размещать в следующих местах SQL-оператора:
- в списке полей оператора SELECT;
- одновременно как оба операнда для бинарного оператора (например, оператора =), так как на этапе компиляции нельзя определить тип операндов, выступающих в роли параметров;
- одновременно как первый и второй операнд для оператора BETWEEN (например, вместо SQL-оператора SELECT title_id, f_sales FROM tbl1 WHERE f_sales BETWEEN 4095 AND 12000 нельзя записать SELECT title_id, f_sales FROM tbl1 WHERE ? BETWEEN ? AND 12000 );
- одновременно как первый и третий операнд для оператора BETWEEN;
- одновременно как первый операнд и второй операнд для оператора IN (например, вместо SQL-оператора SELECT f_ID, f_state FROM tbl1 WHERE f_state IN ('CA', 'CB')
нельзя записать SELECT f_ID, f_state FROM tbl1 WHERE ? IN (?, ?) );
- как операнд унарного оператора + или -.