Как правило, Oracle SELECT всегда возвращает правильное количество строк в строке. Если набор результатов не соответствует вашему ожиданию, тогда возникает проблема с вашим пониманием.
Например, вы можете ошибочно определить количество строк с student_id = 1231
. Если запрос возвращает только шесть строк, как вы знаете, их должно быть десять? Это может быть не так просто, как Eyeballing ...
select * from student_detail
order by student_id
... если student_id
имеет тип данных VARCHAR2 и некоторые идентификаторы с суффиксом блуждающих пространств. Подобный запрос будет диагностировать эту проблему:
select student_id, count(*)
from student_detail
group by student_id
order by student_id
Другие возможные причины? Неверный взгляд? Row Level Security ограничивает набор результатов? Некоторая причудливая конфигурация на стороне клиента, которая показывает только первые шесть строк вместо всего набора?
Вы упомянули RAC. RAC использует механизм, называемый Global Cache Service Process, для передачи измененных данных на разные узлы. Возможно, вы испытываете провал в этом процессе. Поговорите со своим администратором баз данных и попросите их расследовать.
Вы, кажется, определяете, что в базе данных есть проблема, основанная на возврате всех строк, которые вы ожидаете. Если есть какой-то другой симптом, то вы, конечно, должны сказать нам, что это такое. –
Есть ли 'student_detail' вид? У вас включен VPD? –
запрос в порядке. Другие данные хранятся в student_detail, которые вы ожидаете получить. Может быть, вы подключаетесь к неправильному экземпляру db? – BlueConga