Как использовать специальный символ '_' в предложении where в oracle

Прежде всего, я не вижу, как это удобно для того, чтобы обернуть Gson.

Что касается вашей проблемы, то информация о самом родовом типе T не доступна во время выполнения. Он был удален. Он доступен только во время компиляции. Вы хотите параметризовать его с фактическим типом, а не как new TypeToken<List<String>>.

Из-за отсутствия повторных данных Generics в Java (невозможно выполнить T t = new T()), сам Gson вынужден использовать подход TypeToken, как вы видите. В противном случае Гссон сделал бы это более элегантно.

Чтобы иметь возможность передавать фактический тип вокруг, вы должны изобрести ту же самую вещь, что и TypeToken. И это не имеет смысла :) Просто используйте его повторно или просто используйте Gson прямо, не упаковывая его в какой-то вспомогательный класс.

-2
задан peter 18 March 2019 в 18:05
поделиться

2 ответа

Считайте подчеркивание символом подстановки. Используйте [_].

select * from mn_table where status='Y' and upper(pl_name) like '%[_]5M[_]%';
0
ответ дан Varun Srinivasan 18 March 2019 в 18:05
поделиться

_ рассматривается в SQL как подстановочный знак, поэтому он фактически пытается сопоставить любой символ. Вы можете обернуть _ в []. Это должно вернуть то, что вы хотите:

select * from mn_table where status='Y' and upper(pl_name) like'%[_]5M[_]%'

Это будет соответствовать любому символу в квадратных скобках.

В качестве альтернативы, бежать, используя ESCAPE '\':

select * from mn_table where status='Y' and upper(pl_name) like'%\_5M\_%' ESCAPE '\'
0
ответ дан haldo 18 March 2019 в 18:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: