Обычно рекомендуется иметь эти <script>
, тег максимально опускает страницу (не в голове, а в теле).
Кроме этого, я не думаю, что это имеет большую часть значения, потому что тело не может быть проанализировано, если Вы не имеете эти <head>
раздел, полностью загруженный. И, Вы хотите, чтобы Ваш <link>
тег был в голове, как Вы хотите, чтобы Ваше моделирование произошло, поскольку браузер представляет Вашу страницу и не после этого!
Не совсем. DBMS_OUTPUT работает следующим образом: ваш блок PL / SQL выполняется на сервере базы данных без взаимодействия с клиентом. Поэтому, когда вы вызываете PUT_LINE, он просто помещает этот текст в буфер в памяти на сервере. Когда ваш блок PL / SQL завершается, управление возвращается клиенту (в данном случае я предполагаю SQLPlus); в этот момент клиент получает текст из буфера, вызывая GET_LINE, и отображает его.
Таким образом, единственный способ заставить вывод чаще появляться в файле журнала - это разбить большой блок PL / SQL на несколько меньших блоков, чтобы управление чаще возвращалось клиенту. Это может оказаться непрактичным в зависимости от того, что делает ваш код.
Другими альтернативами являются использование UTL_FILE для записи в текстовый файл, который может быть сброшен в любой момент, или использование процедуры автономной транзакции для вставки операторов отладки в таблица базы данных и фиксация после каждой.
Две альтернативы:
Вы можете вставить данные регистрации в таблицу регистрации, используя автономную транзакцию. Вы можете запросить эту таблицу журналов в другом сеансе SQLPLUS / Toad / sql Developer и т. Д. Вы должны использовать автономную транзакцию, чтобы сделать возможным фиксацию вашего журнала, не мешая обработке транзакции в вашем основном sql-скрипте.
Другой альтернативой является использование конвейерной функции, возвращающей данные вашего журнала. См. Пример здесь: http://berxblog.blogspot.com/2009/01/pipelined-function-vs-dbmsoutput.html Когда вы используете конвейерную функцию, вам не нужно использовать другой SQLPLUS / Toad / sql developer и т.д ... сеанс.
буфер DBMS_OUTPUT
считывается при вызове процедуры DBMS_OUTPUT.get_line
. Если ваше клиентское приложение - SQL * Plus, это означает, что оно будет сброшено только после завершения процедуры.
Вы можете применить метод, описанный в this SO , чтобы записать буфер DBMS_OUTPUT
в файл.