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