如何使用sybase过程将打印到控制台的文本转换为shell脚本

时间:2013-09-19 12:22:19

标签: shell unix stored-procedures sybase-ase

我有一个sybase程序,可以打印如下数据:print'Hello World'。

如何将该文本转换为shell脚本。换句话说,shell脚本如何从数据库的控制台读取?

1 个答案:

答案 0 :(得分:1)

你可以通过几种不同的方式做到这一点。如果您有正在运行的脚本文件,请执行以下操作以指定输出文件:

isql -U username -P password -S servername -i Inputscript.name -o outputfile.name

它将运行脚本,并将结果输出到-o

指定的文件中

要在脚本中“以交互方式”运行isql,可以在shell脚本中执行以下操作:

isql -U username -P password -S servername -b << ENDSQL >> outputfile.name
set nocount on    \*stops displaying rows affected count*\
go
select some, data from table
go
ENDSQL

您还可以使用上面的示例将查询结果设置为变量:

myvar = `isql -U username -P password -S servername << ENDSQL
sp_my_procedure
go
ENDSQL`

一些笔记。如果您正在执行SQL语句,并且将在其他处理中使用结果(例如,不仅仅是尝试打印它们),您可能希望在SQL中set nocount on以防止受影响的行数打印,并使用-b标志,用于防止打印标题。