Sybase

如何從 isql 將參數傳遞給“SQL 腳本”

  • April 20, 2013

我想知道是否可以從 sybase 的 isql 實用程序中將參數傳遞給 SQL 腳本。

例如,我想在文件the_script.sql中儲存一個 select 語句,看起來像

select
  col_1,
  col_2,
  etc
from
  table
where
  cond1 > $param1 and
  cond2 < $param2

然後,使用該文件,我想從 isql 中“執行”它

:r the_script.sql 900 20

$param1用900 和$param220代替期望值。

有沒有可能實現我想要的?

查看您的案例,您似乎想要一個儲存過程,所以這是我為您寫的一個:

CREATE PROC the_script
(
  @param1 int = null,
  @param2 int = null
)
AS
BEGIN
  select
     col_1,
     col_2,
     etc
  from
     table
  where
     cond1 > @param1 and
     cond2 < @param2
END

現在,在 isql 中,您可以執行它:

exec the_script 900, 20

問候。

我認為它不能在 isql 中按位置完成。使用 shell 腳本包裝器,您可以執行類似的操作

#!/bin/bash

PARAM1=$1
PARAM2=$2

isql -u whoever -p whatever -s myserver << EOF
select * from mytable where mycolumn > ${PARAM1} and mycolumn < ${PARAM2}
go
EOF

引用自:https://dba.stackexchange.com/questions/2929