Java Подготовил инструкцию для запроса с использованием функции oracle pivot

#java #jdbc

Вопрос:

Как передать параметры вместо abcd для следующего запроса при использовании подготовленной инструкции?

 select * from table (PIVOT ( ' select A, B, SUM(C) from TABLE_XYZ where A =' 'abcd' ' GROUP BY A, B ORDER BY A ASC ' )) order by A;
 

Ответ №1:

Вы можете использовать String.format(<format of your string with format specifiers like %s or %d and etc >,< parameters >) . В случае вашего запроса; Он может быть написан:

 String query = String.format('select * from table (PIVOT ('select A, B, SUM(C) from TABLE_XYZ where A =' %s ' GROUP BY A, B ORDER BY A ASC')) order by A;',  'abcd');
 

В результате ваш запрос будет выглядеть следующим образом(abcd без кавычек):

выберите * из таблицы (СВОДНАЯ («выберите A, B, СУММУ(C) из TABLE_XYZ, где A =» abcd «ГРУППИРУЕТСЯ ПО A, B, УПОРЯДОЧИВАЕТСЯ ПО ASC»)) порядок по A;

если вы хотите, чтобы он был в кавычках, напишите этот код:

 String query = String.format('select * from table (PIVOT ('select A, B, SUM(C) from TABLE_XYZ where A =' %s ' GROUP BY A, B ORDER BY A ASC')) order by A;',  ''abcd'');