Объединение целочисленных и строковых значений без TO_CHAR в PL / SQL - PullRequest
0 голосов
/ 07 мая 2019

Мне любопытно, почему целое число может быть объединено в строку без использования TO_CHAR, как показано в следующем примере:

declare
    type test_table is table of varchar2(20);

    test_session   test_table;
begin
    with
        sessions
        as
            (select 1 session_num from dual
             union
             select 2 session_num from dual),
        session_concat
        as
            (select 'Session: ' || session_num
             from dual, sessions)
    select *
    bulk collect into test_session
    from session_concat;
end;
/

Конкатенация также работает с ключевым словом CONCAT вместо оператора || и, более того, когда целочисленная переменная объявляется и объединяется (вместо выбора FROM DUAL).

1 Ответ

0 голосов
/ 07 мая 2019

Это пример того, как Oracle выполняет неявное преобразование данных .

. Рекомендуется выполнять явные преобразования типов данных (по причинам, указанным в комментариях к этому посту и всвязанная страница документации Oracle).

...