を通じて構築されたとき、これはインターシステムズのキャッシュDBの専門家に取り込まれている場合それは素晴らしいことだファイルに手動で書かれており、実行時にコマンド:インターシステムズキャッシュが正常に行われなくスクリプト
私は手動で編集してスクリプトを作成しましたRHEL linux上のVIエディタからファイルを取り出し、それをCACHE DB上で実行し、すべてのコマンドが正常に実行されました。バッチスクリプトは:
#! /bin/ksh
. /apps/ins/.profile
cache <<-!END
do \$system.Security.Login("_SYSTEM","SYS")
do \$system.SQL.Shell()
select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '278/PLMN/000100'
select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '208/PLMN/002000'
select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '208/PLMN/000100'
select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '206/PLMN/001000'
exit
h
!END
SUCCESSFUL OUTPUT:今
Node: sur-eir2, Instance: CACHEHA
INS>
INS>
SQL Command Line Shell
----------------------------------------------------
Enter q to quit, ? for help.
INS>>
1. select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '278/PLMN/000100'
Aggregate_1
0
1 Rows(s) Affected
---------------------------------------------------------------------------
INS>>
2. select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '208/PLMN/002000'
Aggregate_1
0
1 Rows(s) Affected
---------------------------------------------------------------------------
INS>>
3. select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '208/PLMN/000100'
Aggregate_1
0
1 Rows(s) Affected
---------------------------------------------------------------------------
INS>>
4. select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator= '206/PLMN/001000'
Aggregate_1
0
1 Rows(s) Affected
---------------------------------------------------------------------------
INS>>
INS>
、私は別のメインスクリプトを経由して、このようなスクリプトを作成する(コマンドをエコー)し、それを実行しようとしていながら、同じコマンドが失敗します構文上のエラーを示します。私の主なスクリプトは次のとおりです。
==============From Here=========================
#! /bin/ksh
while read line
do
echo "select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator = '$line'"
done <plmn_list>> command_list ;
echo "#! /bin/ksh" >> get_count
echo ". /apps/ins/.profile" >> get_count
echo "cache <<-!END" >> get_count
echo "do \$system.SQL.Shell()" >> get_count
cat command_list >> get_count
echo "exit" >> get_count
echo "h" >> get_count
echo "!END" >> get_count
==================till here the get_count script is generated fine========
chmod u+rwx get_count
ksh ./get_count > query_result <-- query_result shows syntax errors
sed -n '/Aggregate_1/,+1p' query_result | grep -v "Aggregate_1" > count
paste plmn_list count > report
rm -f command_list get_count
get_count
内容:
#! /bin/ksh
. /apps/ins/.profile
cache <<-!END
do $system.SQL.Shell()
select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator = '278/PLMN/000100'
select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator = '208/PLMN/002000'
select count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator = '208/PLMN/000100'
exit
h
!END
だから、すべてがそこに正常に見えます。しかしquery_result
は示しています。走っget_count
から各コマンドを個別にも問題なく動作
Node: sur-eir2, Instance: CACHEHA
INS>
DO .SQL.Shell()
^
<SYNTAX>
INS>
SELECT count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator = '278/PLM
^
N/000100'
<SYNTAX>
INS>
SELECT count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator = '208/PLM
^
N/002000'
<SYNTAX>
INS>
SELECT count(*) from cdat_tb_ceir_blacklist_7 where cdat_c_originator = '208/PLM
^
N/000100'
<SYNTAX>
INS>
EXIT
^
<SYNTAX>
INS>
。それではなぜ構文上のエラー?