У меня есть столбец, содержащий набор строк, в том числе чисел в виде строк (и до того один из вас предлагает это, тип не меняется)IF с INSTR
TableA:
ColA
-----
''
(NULL)
'5 Yippee'
'6 Yeps'
'7'
'8 Awesome'
Я пытаюсь вывести основанный на числе. Первоначально предполагалось, что за всеми номерами в этом столбце будет пробел. Как оказалось, это не так.
До сих пор я
FOR x in
(SELECT * FROM FUNCTION_THAT_OUTPUTS_COLA(var1,var2)) -- ColA, not Cola
LOOP
IF ColA is not null
IF instr(x.ColA,' ') >0 -- There's a space in here
THEN
v_output.Col:= SUBSTR(x.ColA,1,INSTR(x.ColA,' '));
PIPE ROW(v_output);
ELSE
v_output:= x.ColA;
PIPE ROW(v_ouptut);
END IF;
END IF;
К сожалению, в то время как он раздевает нуль, также срывает '7'
Идеальный выход здесь является:
'5'
'6'
'7'
'8'
Может
кто поможет меня здесь, мой разум совершенно пуст?
Edit:
Нашел, это была опечатка, что было зафиксировано, когда я транспонировать его здесь
Спасибо, ребята
Измените свой вопрос и предоставите желаемый результат. –
@GordonLinoff Редактировано – JohnHC
Это поможет, если вы разместили код, который был скомпилирован и был полным - включите объявления типа, полную функцию, от которой этот фрагмент (неважно, действительно ли значение действительно получено из таблицы или коллекции, это просто должен продемонстрировать вашу проблему), и что вы можете работать автономно. Пытаясь исправить ошибки и опечатки, это, похоже, делает то, что вы хотите, из-за чего сложно сказать вам, что не так. Можете ли вы также уточнить, включают ли ваши значения одиночные кавычки, а если '(NULL)' означает, что значение на самом деле равно нулю? –