powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Опять LONG RAW -> BLOB
2 сообщений из 27, страница 2 из 2
Опять LONG RAW -> BLOB
    #40035944
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно также использовать PL/SQL для работы с LONG
Пример заливки varchar(8000) c MSSQL to CLOB через dblink

например:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
$ (echo "desc dropme@mm";echo "desc v_dropme@mm")|sqlplus -l -s system/***@d1
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ==>s1                                                 LONG
 s2                                          VARCHAR2(2000 CHAR)
 s3                                                 VARCHAR2(1000 CHAR)
 s4                                                 VARCHAR2(50 CHAR)
 id                                                 NUMBER(10)
--------------------------------------


Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
-- создаем тип запись с нужными полями
create or repace type t_dropme_row as object (
id number
,s1 clob
,s2 varchar2(2000)
,s3 varchar2(1000)
,s4 varchar(50)
);

-- создаем тип таблицы с этими записями
create or replace type t_dropme_tab as table of t_dropme_row;

-- создаем pipeline функцию возвращающую нужные нам записи  
create or replace function f_dropme_tab return t_dropme_tab
pipelined
as
rout  t_dropme_row := t_dropme_row(0,null,null,null,null);
begin
dbms_lob.createtemporary(rout.s1,true);
for rin in (SELECT * FROM dropme@mm) loop
 rout.id := rin."id";
 rout.s1 := to_clob(rin."s1");
 rout.s2 := rin."s2";
 rout.s3 := rin."s3";
 rout.s4 := rin."s4";
 pipe row (rout);
end loop;
end;
/

-- Можно работать 
SQL> set LONG 10000
SQL> select s1,length(s1) from table(f_dropme_tab);
...
736.......737.......738.......739.......740.......741.......742.......743.......
744.......745.......746.......747.......748.......749.......750.......751.......
752.......753.......754.......755.......756.......757.......758.......759.......

S1
--------------------------------------------------------------------------------
LENGTH(S1)
----------
760.......761.......762.......763.......764.......765.......766.......767.......
768.......769.......770.......771.......772.......773.......774.......775.......
776.......777.......778.......779.......780.......781.......782.......783.......
784.......785.......786.......787.......788.......789.......790.......791.......
792.......793.......794.......795.......796.......797.......798.......799....
      7997


Рекомендую также очень полезную статью по теме:

working with long columns
...
Рейтинг: 0 / 0
Опять LONG RAW -> BLOB
    #40035991
DEBugger13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin
Можно также использовать PL/SQL для работы с LONG
Пример заливки varchar(8000) c MSSQL to CLOB через dblink

например:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
$ (echo "desc dropme@mm";echo "desc v_dropme@mm")|sqlplus -l -s system/***@d1
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ==>s1                                                 LONG
 s2                                          VARCHAR2(2000 CHAR)
 s3                                                 VARCHAR2(1000 CHAR)
 s4                                                 VARCHAR2(50 CHAR)
 id                                                 NUMBER(10)
--------------------------------------


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
-- создаем тип запись с нужными полями
create or repace type t_dropme_row as object (
id number
,s1 clob
,s2 varchar2(2000)
,s3 varchar2(1000)
,s4 varchar(50)
);

...


Рекомендую также очень полезную статью по теме:

working with long columns


Спасибо, уже читал и протестировал. Но это работает для символьного LONG, а надо LONG RAW
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Опять LONG RAW -> BLOB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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