SQL строго типизировано. Тип вывода NVL
выводится как NUMBER
, поэтому фактический запрос выглядит примерно так:
SELECT NVL(ENAME::NUMBER, 0) FROM EMP1;
. Вы должны решить, каким типом должен быть ваш вывод. Если вы хотите строки, то вам нужно будет передать NVL
строку, например
SELECT NVL(ENAME, '0') FROM EMP1;
Если вы хотите целые числа, вам нужно будет безопасно преобразовать строки в целые числа. Например, если вы хотите, чтобы нецелые числа стали NULL
, а затем 0, тогда вы можете использовать
SELECT NVL(TRY_TO_INTEGER(ENAME), 0) FROM EMP1;