Какой size у sql_address из представления v$session

ProRockX
Дата: 26.09.2015 19:45:05
Добрый вечер всем.
Делал проект, подключаясь к Oracle11g. Имеется Query с таким текстом:
SELECT v.sql_address FROM v$session v
where v.username is not null


В field запроса у поля sql_address свойство size стоит 4 (определилось само при добавлении филда).
На Oracle 11g запрос открывается нормально. Но если его попытаться выполнить в Oracle 12с, то получаю ошибку:
Size mismatch for field 'SQL_ADDRESS', expecting: 4 actual: 8.


Если же я выставлю свойство size у этого филда =8, то в 12c будет отрабатывать нормально, а в 11g уже выдаст:
Size mismatch for field 'SQL_ADDRESS', expecting: 8 actual: 4.


Нашёл в документации Oracle описание SQL_ADDRESS:
DataType: RAW(4 | 8). Used with SQL_HASH_VALUE to identify the SQL statement that is currently being executed


Первый раз сталкиваюсь с типом Raw. Что значит запись "(4 | 8)"? Он может принимать 2 значения? Тогда, как мне определить size для этого филда?
ora601
Дата: 26.09.2015 20:24:12
ProRockX,

в 11g - size 4
12c - size 8
ProRockX
Дата: 26.09.2015 20:29:58
ora601, спасибо)
приложи мозги 32х64
Дата: 27.09.2015 00:56:17
только не надо строить домыслы про связь с версией 11/12.
32 vs 64 bit
Дата: 27.09.2015 02:07:07
ora601
ProRockX,

в 11g - size 4
12c - size 8


ProRockX
ora601, спасибо)


Вот дебилы! (с)
ora601
Дата: 27.09.2015 03:11:57
32 vs 64 bit,

да верно, это для 32 и 64 бит соответственно.
ProRockX
Дата: 27.09.2015 18:54:57
ora601
это для 32 и 64 бит соответственно.
Я так понимаю, имеется ввиду битность Оракла, не винды? А то у меня и на ноуте и на компе 64битная винда, а ораклы - да, разной разрядности.
ProRockX
Дата: 28.09.2015 14:22:37
Спасибо огромное Grossmeister, модератору форума cyberforum за полное решение проблемы:

SELECT data_length
FROM dba_tab_columns
WHERE TABLE_NAME = 'GV_$SESSION'
  AND column_name = 'SQL_ADDRESS'