VARCHAR2 Контент, потерянный во время звонка в Oracle из JBoss - PullRequest
0 голосов
/ 28 января 2011

Действительно странно.

У меня есть функция Oracle

function highlightDesc(desc IN VARCHAR2, keyword IN VARCHAR2) return VARCHAR2
return 'paragraphtag' || 
       REPLACE(desc, keyword, 'boldtag' || keyword || 'boldtag') || 'paragraphtag';

Это называется так

select a.*, highlightDesc(a.Desc) as highlightedDesc
from tablea a

Странно то, что когда я вызываю этот sql из sqlplus или plsql разработчикаВ столбце подсветкиДеск есть вся правильная разметка.

Когда я звоню из Junit, я получаю правильную разметку.

Когда я звоню из приложения struts2, работающего на jboss (winxp / redhat) с драйверами oracle thin, я получаютеги абзацев и теги содержимого, но не жирный.

Имеет ли это смысл?Какие-нибудь мысли?

Редактировать:

Прошу прощения, я не могу войти в SO с работы.Хромой, я знаю.

Я использую dbutils queryrunner для общего пользования (BeanListHandler), чтобы выполнить sql из java-класса.Мое действие не делает ничего, кроме вызова класса обслуживания и установки значения.

Я посмотрел на src для queryrunner, в итоге он вызывает класс BeanProcessor, который получает выделенный столбец String через rs.getString (index);

Я думал, что это может бытьпроблема кодирования ???поэтому я попытался изменить кодировку jvm, а также кодировку jboss, но это не имело никакого эффекта.Я думаю, я мог бы увидеть, если преобразование набора символов в оракуле имеет какой-либо эффект?

Спасибо.

1 Ответ

1 голос
/ 29 января 2011

Скорее всего, keyword неправильно передается в функцию, поэтому функция REPLACE фактически ничего не делает.

...