Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL выборка данных по размеру или по длине значения / 19 сообщений из 19, страница 1 из 1
03.10.2018, 19:38
    #39712650
Miner_Mira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Есть БД ORACLE
Есть в ней таблица с фотографиями, тип данных BLOB.
Некоторые фото плохого качества. Необходимо заменить эти фото.
Отличительная особенность фото плохого качества - это малый размер данных в столбце FOTO, тип данных BLOB (к примеру данные занимают менее 5 килоБайт).
Задача = найти строки в таблице с фотографиями, где данные в столбце FOTO занимают менее 5 килоБайт.
...
Рейтинг: 0 / 0
03.10.2018, 19:42
    #39712651
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
A что LENGTH уже отменили?

SY.
...
Рейтинг: 0 / 0
04.10.2018, 08:07
    #39712773
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
SYA что LENGTH уже отменили?А по какой документации ей быть применимой к B LOB?
...
Рейтинг: 0 / 0
04.10.2018, 08:32
    #39712779
maverick2104
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
dbms_lob.getlength
...
Рейтинг: 0 / 0
07.10.2018, 14:58
    #39714037
Miner_Mira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
maverick2104,

SELECT DBMS_LOB.GETLENGTH(foto) FROM fotes
where id=47

ORA-00997: неверное использование типа данных LONG

что делать?
...
Рейтинг: 0 / 0
07.10.2018, 15:49
    #39714044
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Miner_Miraчто делать?

Для начала выдать нормальный test case.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Connected to Oracle Database 18c Standard Edition 2 Release 18.0.0.0.0 
Connected as system@TEST

SQL> create table t1(f blob);

Table created


SQL> insert into t1 values(utl_raw.cast_to_raw('test'));

1 row inserted


SQL> select dbms_lob.getlength(f) from t1;

DBMS_LOB.GETLENGTH(F)
---------------------
                    4

SQL> 

...
Рейтинг: 0 / 0
07.10.2018, 16:11
    #39714048
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
ElicА по какой документации ей быть применимой к B LOB?

Доверяй, но проверяй:

Код: 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.
SQL> create table tbl(b blob)
  2  /

Table created.

SQL> declare
  2      v_blob blob := utl_raw.cast_to_raw(lpad('9',1000,'9'));
  3  begin
  4      for v_i in 1..20 loop
  5        dbms_lob.append(v_blob,v_blob);
  6      end loop;
  7      insert into tbl values(v_blob);
  8  end;
  9  /

PL/SQL procedure successfully completed.

SQL> select  length(b) length_b,
  2          dbms_lob.getlength(b) getlength_b
  3    from  tbl
  4  /

  LENGTH_B GETLENGTH_B
---------- -----------
1048576000  1048576000

SQL> 



SY.
...
Рейтинг: 0 / 0
07.10.2018, 16:20
    #39714051
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Miner_Miraчто делать?

Медитировать на тему LONG vs BLOB. И читать доку:

LONG
The LONG datatype stores character strings longer than 4000 bytes. You can store up to two gigabytes (2^31-1 bytes) in a LONG column. Columns of this type are used only for storage and retrieval of long strings. They cannot be used in functions, expressions, or WHERE clauses. LONG column values are generally converted to and from character strings.

Do not create tables with LONG columns. Use LOB columns (CLOB, NCLOB, or BLOB) instead. LONG columns are supported only for backward compatibility.

Oracle also recommends that you convert existing LONG columns to LOB columns. LOB columns are subject to far fewer restrictions than LONG columns. Furthermore, LOB functionality is enhanced in every release, but LONG functionality has been static for several releases.

SY.
...
Рейтинг: 0 / 0
08.10.2018, 07:56
    #39714192
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
SYДоверяй, но проверяй:Соломон, при наличии документированных средств нет никакой надобности эксплуатировать недокументированные, рискуя получить когда-нибудь нежданьчик, не правда ли? В качестве тарантула ты б такое посоветовал?
...
Рейтинг: 0 / 0
09.10.2018, 22:07
    #39715193
Miner_Mira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Тип данных таблицы фото TOAD отображает по разному, как BLOB и как LONG.
...
Рейтинг: 0 / 0
09.10.2018, 22:10
    #39715195
Miner_Mira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
...
Рейтинг: 0 / 0
09.10.2018, 22:11
    #39715196
Miner_Mira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
...
Рейтинг: 0 / 0
09.10.2018, 22:12
    #39715197
Miner_Mira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Извиняюсь две первых одинаковые BLOB залил.
Но тот же TOAD может посчитать размер этих данных без проблем
Неужели нет метода в SQL, который так же просто мог считать размер данных как TOAD ?
...
Рейтинг: 0 / 0
09.10.2018, 22:15
    #39715200
Miner_Mira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
ситуация прежняя

SELECT DBMS_LOB.GETLENGTH(IMAGE) FROM IMAGES
where pid=....

ORA-00997: неверное использование типа данных LONG
...
Рейтинг: 0 / 0
10.10.2018, 07:39
    #39715336
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Miner_MiraORA-00997: неверное использование типа данных LONGИскалеченная гуем дитя, какой древности проект тебе попался? Грубо говоря, такие типы данных использовались в прошлом(!) веке.
...
Рейтинг: 0 / 0
10.10.2018, 11:05
    #39715435
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Miner_MiraНо тот же TOAD может посчитать размер этих данных без проблем
Неужели нет метода в SQL, который так же просто мог считать размер данных как TOAD ?
Нет.
Ваши данные лежат в LONG RAW.
Этот "недотип" не поддерживается в PL/SQL, только OCI и, емнип, JDBC.
...
Рейтинг: 0 / 0
10.10.2018, 11:19
    #39715445
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
andrey_anonymousЭтот "недотип" не поддерживается в PL/SQLОпределить длину до 32К можно. А больше и не нужно.
...
Рейтинг: 0 / 0
10.10.2018, 15:06
    #39715600
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
Miner_Miramaverick2104,

SELECT DBMS_LOB.GETLENGTH(foto) FROM fotes
where id=47

ORA-00997: неверное использование типа данных LONG

что делать?
завязывать с пыльными недо_типами
to_lob
...
Рейтинг: 0 / 0
10.10.2018, 19:43
    #39715759
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL выборка данных по размеру или по длине значения
andrey_anonymousMiner_MiraНо тот же TOAD может посчитать размер этих данных без проблем
Неужели нет метода в SQL, который так же просто мог считать размер данных как TOAD ?
Нет.
Ваши данные лежат в LONG RAW.
Этот "недотип" не поддерживается в PL/SQL, только OCI и, емнип, JDBC.смотрели прорабатывали закачку VarBinary(max) из mssql кусочками по 4к; на основании чего строился линк, щаз не скажу, что-то бесплатное
тип оказался LONG RAW
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL выборка данных по размеру или по длине значения / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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