powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / empty_clob() vs DBMS_LOB.CREATETEMPORARY
5 сообщений из 5, страница 1 из 1
empty_clob() vs DBMS_LOB.CREATETEMPORARY
    #39715810
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В пакете, в функции, которая должна вернуть CLOB
можно обьявить возвращаемый обьект либо так
RetCLB CLOB := empty_clob();
И далее работать с этим в цикле:
RetCLB:=RetCLB ||что-то добавили
и вернули return RetCLB ;

либо, обьявить RetCLB CLOB и создать при помощи
DBMS_LOB.CreateTemporary(RetCLB ...
и записывать туда через dbms_lob.writeappend

А как лучше и почему?
Или это одно и то же?

11g, если это важно.
Читал здесь , но вопрос еще остался.
...
Рейтинг: 0 / 0
empty_clob() vs DBMS_LOB.CREATETEMPORARY
    #39715856
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ART-CODE,

в общем случае сейчас не нужно делать ни первого, ни второго, ни третьего: достаточно задекларировать как clob и конкатенировать просто с помощью ||
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SQL> create or replace function return_clob return clob as
  2    c clob;
  3  begin
  4    c:=rpad('x',4000,' ');
  5    c:=c||rpad(' ',4000,' ');
  6    c:=c||'z';
  7    return c;
  8  end;
  9  /
SQL>
SQL> select return_clob x from dual;

X
-----------------------------------------------------------
x




                                                                            
                                                                            
                                                                            
                                                                            
                                                                            
                                                                            
                                            z

...
Рейтинг: 0 / 0
empty_clob() vs DBMS_LOB.CREATETEMPORARY
    #39716238
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderсейчас не нужно Многоразовая конкатенация несколько дороже, чем многоразовый writeappend в единожды createtemporary.
...
Рейтинг: 0 / 0
empty_clob() vs DBMS_LOB.CREATETEMPORARY
    #39716263
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Независимо от ценника на конкатенацию есть ценник на перенос из tmp в целевую таблицу.
Если лоб создается под хранение - лучше сразу туда и писать
...
Рейтинг: 0 / 0
empty_clob() vs DBMS_LOB.CREATETEMPORARY
    #39716913
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за помощь.
andrey_anonymousлучше сразу туда и писать
Это значит переделать функцию на процедуру с параметром
IN OUT NOCOPY CLOB ?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / empty_clob() vs DBMS_LOB.CREATETEMPORARY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]