2017-02-16 69 views
1

我正在尋找從我寫的SQL中的「count」變量中返回一個數值。不幸的是,我只是得到一個安格爾錯誤消息。任何想法我做錯了什麼?在shell腳本中將表計數設置爲變量..?

見shell腳本代碼如下:

#!/bin/ksh 
############### 

count=$(sql db_name -s -N "SELECT COUNT(*) FROM temp_table;") 

echo "Table count = $count" 

見安格爾錯誤如下:

Table count = INGRES TERMINAL MONITOR Copyright 2008 Ingres Corporation 
E_US0022 Either the flag format or one of the flags is incorrect, 
    or the parameters are not in proper order. 

預期成果:

Table count = 8 
+0

如果您使用的是Korn shell中,使用'ksh'標籤,而不是'bash'標籤。無論如何,這不是一個殼問題。你的SQL命令有問題。 – chepner

+1

您是否嘗試過執行'sql db_name -s-N「SELECT COUNT(*)FROM temp_table;」'查看腳本之外的輸出是什麼? – Fred

回答

1

試試這個:

=>|Fri Feb 17|01:51:01|[email protected][STATION]:/var/lib/pgsql> ./test.sh 
count ------- 3 (1 row) 

=>|Fri Feb 17|01:51:04|[email protected][STATION]:/var/lib/pgsql> cat test.sh 
#!/bin/bash 

count=$(psql <<EOF 
select count(*) from mdn_2 ; 
EOF 
) 
# Prints the result captured from DB 
echo $count 

=>|Fri Feb 17|01:51:05|[email protected][STATION]:/var/lib/pgsql> 
+0

結果現在是:。 「INGRES監控終端版權所有2008 Ingres公司Ingres的SPARC Solaris版本9.2.1 II登錄週四4月20日11點30分四十秒2017年繼續執行+ ----------- - + | col1 | + ------------- + | 8 | + ------------- +(1 row)你的SQL語句有Ingres Version II 9.2.1註銷Thu Apr 20 11:30:40 2017「 任何想法如何才能返回」8「? – TCP

+0

您可以在這裏分享截圖嗎?然後我可以檢查並回復。 – User9102d82