Промежуточные объекты не будут созданы, поэтому не будет ничего для сборки мусора.
Когда вы объявляете v_string
, Oracle выделяет 100 байт хранилища (при условии, что NLS_LENGTH_SEMANTICS
является значением по умолчанию BYTE
) для строки (более крупные строки не будут предварительно выделены, как это, и что составляет «больший размер» Строка "зависит от версии. В 11.2 ограничение составляет 4000 байт , хотя раньше оно составляло 2000 байт, и я не уверен, когда он изменился). Поскольку 100-байтовый буфер был предварительно выделен, достаточно легко объединить различные другие строки в этом предварительно выделенном буфере. Нет необходимости выделять дополнительное пространство для хранения промежуточных результатов, поэтому нет ресурсов для освобождения.
В какой-то момент v_string
выйдет из области видимости, и буфер, выделенный для него, будет, конечно, освобожден. Но это будет в конце блока, где объявлен v_string
.