НЕ. И няма пряко съответствие между ?
и $1
синтаксис, тъй като последното предполага повторно използване на параметър, докато ?
не го позволява. Например, като използвате ? ? ?
означава, че имате 3 параметъра за форматиране, докато $1 $2 $2
означава, че имате два параметъра за форматиране.
Малко вероятно, тъй като няма пряка кореспонденция, преобразуването е възможно само еднопосочно, което би направило подобна помощна програма доста безполезна. Можете да замените всичко сами, с един регулярен израз, заместващ всеки ?
с $
+ index
+ 1
.
Всъщност нямате голям избор в това. Трябва да се направи. Освен това $1
е много по-гъвкав от ?
, поради повторното използване на параметри, плюс допълнителни разширения. Например pg-promise
ги разширява много добре, с различни модификатори на форматиране, които са необходими често:^
, ~
, :json
, :csv
и др...
Вероятно ще прекарате по-малко време за преобразуване на SQL на ръка, отколкото за написване на помощна програма за еднопосочното правилно преобразуване.