将变量从shell脚本传递给SQL

时间:2018-02-28 15:11:30

标签: sql shell

我有一个SQL语句文件1.sql:

set pages 0
set head off
set feed off

select $1 from
(
       select $1 from user_tab_partitions
        where table_name = 'test'
            order by partition_position desc
        )
        where rownum = 1;

我想在shell脚本中执行相同的SQL语句,1.sh:

#!/bin/ksh


username="test"
passwrd="testpass"
partition_name=$1
partition_position=$2

PARTNAME=`sqlplus -s $username/$passwrd << EOT
@1.sql $1
exit
EOT`

echo $PARTNAME

PARTPOS=`sqlplus -s $username/$passwrd << EOT
@1.sql $2
exit
EOT`

echo $PARTPOS

-

所以,基本上我正在做的是执行相同的SQL,但输入不同。 我不知道如何将这些变量从SHELL脚本传递给SQL脚本。

我的代码应该改变什么??? !!

感谢您的时间! / Hesi

1 个答案:

答案 0 :(得分:0)

您需要将SQL脚本从$ 1更改为&amp; 1。如果你将SQL嵌入到这里的实际脚本doc中,$ 1将会工作。

set pages 0
set head off
set feed off

select &1 from
(
       select &1 from user_tab_partitions
        where table_name = 'test'
            order by partition_position desc
        )
        where rownum = 1;