쉘 스크립트에서 값이있는 변수가 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
나는 그것을 인수 값을 가져 오는됩니다
/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
라인을 별도로 복사 할 때 그것이 내가 오류
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......
아래 얻고있다 하나 개의 인수 값을 따기입니다 실행하려고 할 때 테이블에 삽입하십시오. 이유는 무엇 일 수 있습니다. 코드에서 어떤 변화가 필요합니다. 저에게 알려주세요.
오신 것을 환영합니다 가능한 경우 코드 스 니펫을 줄이려 고 시도하십시오. – Daenarys
코드를 줄이려고 편집을 시도했습니다. 그러나 그것은 작동하지 않습니다. – user3441224
암호를 코드에 붙여 넣을 때 최대한 빨리 암호를 변경 한 다음 스크립트에 테스트를 넣어 sqlplus에 전달하기 전에 인수에 실제로 데이터가 들어 있는지 확인하십시오. 그것은 일어나고있는 일을 좁히고 그것이 당신이 기대하는 것임을 확인하는 데 도움이 될 것입니다. –