从shell中的Store过程卸载数据

时间:2017-07-21 21:30:48

标签: shell informix

我尝试从shell中的informix中的存储过程中卸载数据,但是当我执行shell脚本时出现错误。

我的Shell文件

FILE="customer_report" 
PATH="/home/usrrep/DIR_1/DIR_2/" 
EXT=".txt"


dbaccess dataBase <<eof

unload to $PATH$FILE$1$EXT delimiter ','
execute procedure database:customerReports();
eof

echo Serial Number,Name,Office,Status,Product,Date,Phone1,Phone2,Email,Final Reult> $PATH$FILE$1.csv
cat $PATH$FILE$1$EXT >> $PATH$FILE$1.csv
exit 0

执行查询时,shell工作正常,但是当我尝试执行Store过程时会抛出下一个错误:

809: SQL Syntax error has occurred.
Error in line 2
Near character position 0

错误很明确,但我不知道发生了什么

提前致谢

2 个答案:

答案 0 :(得分:1)

卸载到......执行程序......除非没有记录,否则似乎不存在。 一种可能性是在customerReports()

中使用
select ... from ...into temp mytemptable

unload to ... select * from mytemptable 

在shell脚本中。

答案 1 :(得分:1)

你可以尝试使用table()。有点像这样:

> create procedure p2(c1 int) returning int,char(10)
 return 1,'aaa' with resume;
 return 2,'bbb' with resume;
 end procedure;

Routine created.

> execute procedure p2(1);


(expression) (expression)

           1 aaa
           2 bbb

2 row(s) retrieved.

> unload to x.unl select * from table(p2(1));

2 row(s) unloaded.

> !cat x.unl
1|aaa|
2|bbb|
>