将变量从shell脚本传递给SQL

问题描述 投票:0回答:1

我有一个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脚本。

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

谢谢你的时间! /赫斯

sql shell
1个回答
0
投票

您需要将SQL脚本从$ 1更改为&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;
© www.soinside.com 2019 - 2024. All rights reserved.