sql query não funciona no shell script unix

0

Estou usando a variável shell na instrução sql e essa variável é o tipo string. Se eu executar o script abaixo, estou obtendo a saída como 'no rows selected' mas quando executo a mesma consulta select no prompt sql estou obtendo a saída correta. Mesmo eu tentei substituindo $ var com 'os' no script, mas ainda não obtendo a saída necessária

var="os"
user="system"
pass="2451"
ou=$(sqlplus -s $user/$pass <<EOF
select login,subject from timetable where subject=$var;
exit;
EOF
)
echo $ou
    
por user3411451 18.06.2014 / 17:25

1 resposta

0

A declaração executada neste caso será:

select login,subject from timetable where subject=os;

Ele irá comparar o assunto da linha com o (não existente / sistema) var "os", o que não existe.

Você deve adicionar colchetes, dependendo do dbms usado, assim:

select login,subject from timetable where subject=\'$var\';
    
por 18.06.2014 / 17:32

Tags