Если Вы говорите о Java (но правила для других языков подобны), он похож на это:
можно (вниз) бросить интерфейс к конкретной реализации, эквивалентность, ссылка, которую Вы бросаете на самом деле, является ссылкой на определенную конкретную реализацию. Это означает
Vehicle v=new Car();
(Car)v // this is OK
(Bus)v // this is not
, ошибка проявляется как ClassCastException
в Java.
Вы можете восходящий конкретная реализация интерфейса к интерфейсу свободно.
Это не похоже на проблему с разработчиком SQL, кстати, я никогда не сталкивался с этим. Вы уверены, что это не что-то другое, например ваша сеть? Что произойдет, если вы подключитесь через SQL plus со своего рабочего стола.
У меня нет ответа на этот вопрос, но у меня та же проблема.
Брандмауэр между моим SQL-разработчиком и базой данных автоматически закрывает "неактивные" сессии. Длинный запрос, согласно брандмауэру, является неактивной сессией, поэтому он закрывает ее. Я пока не нашел, как заставить SQL-разработчика посылать пакеты по соединению с длинным запросом, чтобы брандмауэр не закрывал соединение. И я не знаю, возможно ли это вообще.
Поэтому я не думаю, что это проблема SQL-разработчика, а проблема брандмауэра.
-- UPDATE
Существует расширение для SQL-разработчика, позволяющее поддерживать соединения активными: http://sites.google.com/site/keepaliveext/
Оно еще не полностью закончено (например, уведомление, которое вы получите, будет показывать один и тот же тайм-аут независимо от того, какой тайм-аут вы указали), но оно выполняет свою задачу. Я еще не протестировал его в сравнении с последним предварительным релизом SQL Developer, но он работал с SQL Developer 2.2.x
-- UPDATE
Для SQL разработчика 4+ можно использовать: http://scristalli.github.io/SQL-Developer-4-keepalive/
Также похоже на проблему с брандмауэром.
Возможно, вам повезет с установкой параметра EXPIRE_TIME в файле SQLNET.ORA сервера. Из документации:
Используйте параметр SQLNET.EXPIRE_TIME для указания временного интервала в минутах для отправки зонда, чтобы проверить, что соединения клиент/сервер активны. Установка значения больше 0 гарантирует, что соединения не останутся открытыми на неопределенное время из-за аномального завершения работы клиента. Если зонд обнаруживает прерванное соединение или соединение, которое больше не используется, он возвращает ошибку, заставляя серверный процесс завершить работу. Этот параметр предназначен в первую очередь для сервера базы данных, который обычно обрабатывает несколько соединений в одно и то же время.
В качестве временного решения этой проблемы на стороне «Data Grid» вы найдете вкладку «Вывод СУБД», включите вывод СУБД и установите частоту опроса на подходящее время.