Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / RAW (16) / 7 сообщений из 7, страница 1 из 1
20.04.2020, 10:24
    #39948871
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAW (16)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
WITH tbl AS (
SELECT 1 s, 'какой-то текст'  d, 'какой-то текст' f from dual
)
SELECT CAST (standard_hash( s ||'|'|| 
                                               d ||'|'|| 
                                               f, 'MD5')
                            AS  RAW (16)
                           
                           ) hash_id 
                           ,LENGTHB( standard_hash( s ||'|'|| 
                                                                                 d ||'|'|| 
                                                                                 f, 'MD5'))
                           FROM tbl


Пока не понял ?
...
Рейтинг: 0 / 0
20.04.2020, 10:37
    #39948874
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAW (16)
saxarock
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Connected to Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 
SQL> WITH tbl AS (
  2  SELECT 1 s, 'какой-то текст'  d, 'какой-то текст' f from dual
  3  )
  4  SELECT CAST (standard_hash( s ||'|'||
  5                                                 d ||'|'||
  6                                                 f, 'MD5')
  7                              AS  RAW (16)
SQL>                            ) hash_id
  2                             ,LENGTHB( standard_hash( s ||'|'||
  3                                                                                   d ||'|'||
  4                                                                                   f, 'MD5'))
  5                             FROM tbl
  6  ;
) hash_id
                           ,LENGTHB( standard_hash( s ||'|'||
                                                                                 d ||'|'||
                                                                                 f, 'MD5'))
                           FROM tbl
ORA-00900: invalid SQL statement

SQL> 


так понятнее ?
...
Рейтинг: 0 / 0
20.04.2020, 10:41
    #39948876
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAW (16)
123йй,

Херово скопировал)
...
Рейтинг: 0 / 0
20.04.2020, 10:44
    #39948877
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAW (16)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH tbl AS
 (SELECT 1 s
        ,'какой-то текст' d
        ,'какой-то текст' f
    FROM dual)
SELECT CAST(standard_hash(s || '|' || d || '|' || f, 'MD5') AS RAW(16)) hash_id
      ,lengthb(standard_hash(s || '|' || d || '|' || f, 'MD5'))
      ,vsize  (standard_hash(s || '|' || d || '|' || f, 'MD5'))
  FROM tbl



Вопрос снят, понятно что:
Сам по себе алгоритм MD5 возвращает 128-битное число.
Но функция md5 возвращает не само число, а его строковое представление.
vsize не конвертит в строковое представление
...
Рейтинг: 0 / 0
20.04.2020, 12:03
    #39948898
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAW (16)
Чувак, лучше разобраться с типом RAW и неявным преобразованием типов
Еще можно обратить внимание на функцию RAWTOHEX
...
Рейтинг: 0 / 0
20.04.2020, 12:03
    #39948899
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAW (16)
saxarock
Вопрос снят, понятно что:
Сам по себе алгоритм MD5 возвращает 128-битное число.
Но функция md5 возвращает не само число, а его строковое представление.
Функция standard_hash возвращает raw.
...
Рейтинг: 0 / 0
21.04.2020, 02:14
    #39949163
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAW (16)
-2-
saxarock
Вопрос снят, понятно что:
Сам по себе алгоритм MD5 возвращает 128-битное число.
Но функция md5 возвращает не само число, а его строковое представление.
Функция standard_hash возвращает raw.
+ lengthb принимает на вход char , соответственно, происходит неявное преобразование из raw в varchar2:

char can be any of the data types CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / RAW (16) / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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