Я пытаюсь выполнить сценарий оболочки, в котором переменные со значениями в сценарии оболочки передаются в sqlplus. Но он не работает с ошибкой ниже, и EOF тоже создает проблему.Множество аргументов, переданных в sqlplus в сценарии оболочки, не принимается
yr_bkp1=$(date +"%Y")
dt_bkp1=$(date +"%d" --date="yesterday")
mn_bkp1=$(date +"%b")
mo_bkp1=$(echo "$mn_bkp1" | tr '[:lower:]' '[:upper:]')
check_fold_size_bkp1=`du -h /archive/node1/bkp/HRMIS_NODE1_PRODFULL_$yr_bkp1$mo_bkp1$dt_bkp1`
size_bkp1=$(echo $check | head -n1 | awk '{print $1;}')
loc_bkp1=$(echo $check | head -n1 | awk '{print $2;}')
cd /archive/node1/bkp/HRMIS_NODE1_PRODFULL_$yr_bkp1$mo_bkp1$dt_bkp1
clnt_cnt1=$(ls -ltr
/archive/node1/bkp/HRMIS_NODE1_PRODFULL_$yr_bkp1$mo_bkp1$dt_bkp1/*.gz | wc -l)
export ORACLE_HOME=/apps/oracle/oracle_ee/product/11.2.0/dbhome
/oracle_ee/sqlplus DBA_SCHEMA/[email protected] @/rmanbkp/exp_bkp_hpay_essdb/test.sql $loc_bkp1 $clnt_cnt1 <<EOF
EOF
Когда я пытаюсь выполнить это собирание только одно значение аргумента я получаю ниже ошибки
2015
15
JAN
13G /archive/node1/bkp/HRMIS_NODE1_PRODFULL_2015JAN15
296
SQL*Plus: Release 11.2.0.3.0 Production on Fri Jan 16 19:23:01 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
old 1: insert into test (TEST1,TEST2) values ('&1','')
new 1: insert into test (TEST1,TEST2) values ('296','')
1 row created.
Commit complete.
Enter value for 2: old 1: insert into test (TEST1,TEST2) values ('','&2')
new 1: insert into test (TEST1,TEST2) values ('','EOF ')
1 row created.
Commit complete.
Commit complete.
Disconnected from oracle......
Когда я копирую отдельно линии
/apps/oracle/oracle_ee/product/11.2.0/dbhome/bin/sqlplus LOGIN/[email protected] @/rmanbkp/scripts/exp_bkp_hpay_essdb_info/exp_bkp_hpay_essdb_ins.sql $loc_bkp1 $clnt_cnt1 <<EOF
это Fetching значение аргумента и вставка в таблицу. Что может быть причиной. Какое изменение мне нужно сделать в коде. Пожалуйста, дайте мне знать.
Добро пожаловать в stackoverflow.Пожалуйста, попробуйте уменьшить фрагменты кода, если это возможно. – Daenarys
Я попытался отредактировать, чтобы уменьшить код. Но это не работает. – user3441224
Измените свой пароль как можно скорее, как вы вставили его вместе с кодом, а затем положите тест в скрипт, чтобы проверить, что аргументы действительно содержат данные, прежде чем перейти к sqlplus. Это поможет сузить то, что происходит, и убедиться, что это то, что вы ожидаете. –