Нет, это ненормально.
Linux имеет функцию "виртуальной консоли" :нажав CtrlAltфункциональную клавишу вы можете переключаться между несколькими представлениями консоли. Как правило, когда система работает нормально, F1 или F6 имеют графический интерфейс по умолчанию, если он включен, а из оставшихся первых 4 или 5 обычно содержат приглашения для входа в систему для сеансов на основе текста -, а остальные не используются.
В программах установки ОС Linux принято использовать эти виртуальные консоли для предоставления журнала событий установщика и/или приглашения оболочки для расширенного устранения неполадок, если это необходимо. Итак, удерживайте нажатыми Ctrl и Alt и начинайте нажимать функциональные клавиши одну за другой :обычно F1 — это вид, в котором вы сейчас находитесь, а последующие виды могут содержать настройки установщика. log и/или корневую подсказку, которую вы можете использовать, чтобы узнать больше информации о том, что вызывает задержку. Обратите внимание, что включение и выключение графического режима может занять несколько секунд, так что не спешите.
Одним из вариантов может быть создание списка из insert
операторов и запуск sqlplus
один раз со всем списком,что-то вроде:
function call_HEAD_INSERT
{
local files=/home/oracle/LOG_*.DAT
local insertStatement=""
# Loop over all files and build a single insertStatement containing the
# the necessary content from each file
for f in ${files}; do
local ptrn="$(grep HEAD "${f}")"
insertStatement="${insertStatement}
insert into user.customer(HEAD) values ('$ptrn');"
done
# Run sqlplus once with all the inserts
cat <<- EOF | sqlplus -s "${ORACLE_LOGIN}" >> "${logFile}"
set feedback off;
set heading off;
set serveroutput on size unlimited;
VARIABLE GV_return_code NUMBER;
VARIABLE GV_script_error CHAR(255);
EXEC :GV_return_code := 0;
WHENEVER SQLERROR EXIT 1
DECLARE
L_error_message VARCHAR2(255);
BEGIN
${insertStatement}
commit;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
:GV_return_code := 1;
:GV_script_error := SQLERRM;
END;
/
print :GV_script_error;
exit :GV_return_code;
EOF
}
Я не знаком с Oracle SQL, но, возможно, есть способ вставить несколько строк с помощью одного оператора insert
.