|
|
|
Как сделать копия LONG RAW
|
|||
|---|---|---|---|
|
#18+
В начале извините за грамматические ошибки, я болгарин. Моя проблема: Дана таблица tab1 - одна колонка LONG RAW (size ~ 1 - 5 MB (ето из .BMP)) Дана таблица tab_arhiv идентичной по структуре с tab1. Мне нужен тригер (или продедура которя будет вызиваться в тригере) на BEFORE DELETE и сделать копия строки которая удаляеться. Искал и пробовал долго. Достиг до следющего: CREATE OR REPLACE PROCEDURE My_Proc is rawdata long raw; begin select file_data into rawdata from tab1 where file_id=XXX; INSERT INTO tab_arhiv(file_data) VALUES ( rawdata); end; Ето работает в ORACLE 9, но не и в ORACLE 8. из документации: "...you can insert any LONG RAW value into a LONG RAW database column because the maximum width of a LONG RAW column is 2**31 bytes. However, you cannot retrieve a value longer than 32760 bytes from a LONG RAW column into a LONG RAW variable." Как быть? Вед нельзя же иметь тип данных , а не иметь средства для их обработки?! (я знаю о BLOB, но задача о LONG RAW) Спасибо за внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2003, 14:24 |
|
||
|
Как сделать копия LONG RAW
|
|||
|---|---|---|---|
|
#18+
Нужно использовать пакет utl_raw. Он создается дополнительно скриптом utlraw.sql в директории $ORACLE_HOME/rdbms/admin. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2003, 16:53 |
|
||
|
Как сделать копия LONG RAW
|
|||
|---|---|---|---|
|
#18+
К сожелении ето не поможет. Вот ето работает, но толко если в поле не более 32К. (по-крайней мере в ORACLE8 ) declare v long raw; n number; begin select file_data into v from file_object_subfiles; select UTL_RAW.LENGTH(v) into n from dual; DBMS_OUTPUT.Put_Line('n = ' || TO_CHAR(n)); end; Я почти пришел к выводу что ето невозможно. (хочу или нет явно мне надо переходит на BLOB. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2003, 18:00 |
|
||
|
Как сделать копия LONG RAW
|
|||
|---|---|---|---|
|
#18+
Как здесь много раз обсуждалось, тип этот оставлен в Оракле только для совместимости и в дальнейшем они(оракловцы в смысле) собираются от него отказаться. Потому переходите на LOB-ы и, я думаю, не будет проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2003, 19:01 |
|
||
|
Как сделать копия LONG RAW
|
|||
|---|---|---|---|
|
#18+
K sozhaleniu bolshaya chast obrobotky LONG RAW vinesena v OCI library na c/c++. V pl/sql ochen malo sredstv. Ogranichenie 32K - eto ogranichenie na varchar2 peremennie (ne putat s polyamy DB) a v pl/sql Oracle modeliruet obrabotky LONG RAW ispolzuya vnutrennie buffera varchar2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2003, 19:58 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32086187&tid=1992291]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
167ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 283ms |
| total: | 506ms |

| 0 / 0 |
