我尝试从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
错误很明确,但我不知道发生了什么
提前致谢
答案 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|
>