У меня есть поле NVARCHAR2
в Oracle, и я делаю LISTAGG
и добавляю к нему некоторый текст.
LISTAGG(
CASE
WHEN a.is_dead = 'Y' AND a.death_cause IS NOT NULL AND a.death_date IS NOT NULL THEN a.composite_pednum || ' - ' || a.death_cause || ' (' || a.death_date || ')'
WHEN a.is_dead = 'Y' AND a.death_cause IS NOT NULL THEN a.composite_pednum || ' - ' || a.death_cause
WHEN a.is_dead = 'Y' THEN a.composite_pednum || ' - Dead'
WHEN a.is_dead = 'N' THEN a.composite_pednum || ' - Alive'
ELSE a.composite_pednum || ' - Unknown Status'
END,
';'
) WITHIN GROUP (ORDER BY a.pedigree_number ASC) AS cage_animals
В PHP я explode
этот текст, чтобы превратить его в массив для последующей обработки.
$cage_animals = array();
if(!empty($data['CAGE_ANIMALS'][$i])) {
$cage_animals = explode(';', $data['CAGE_ANIMALS'][$i]);
}
Что дает мне что-то вроде
["cage_animals"]=>
array(2) {
[0]=>
string(38) "R15-57713-B - Alive"
[1]=>
string(40) "R15-57714-RR - Alive"
}
Заметьте, как длина строки выглядит больше, чем она есть на самом деле? Я думаю, что это может быть из-за следующего скриншота (не полный скриншот) :
![enter image description here](https://i.stack.imgur.com/gb4Fg.png)
Итак, мой вопрос: как мне это предотвратить? Я пытаюсь найти strpos
из Alive
и всегда получаю false
, потому что текст не найден.