Obtendo uma Variável do sqlplus

0

Estou tentando obter um valor do sqlplus como abaixo. No entanto, não faz eco do que eu quero. Aqui está o meu script:

#!/bin/ksh
OLDEST_PARTITION='sqlplus / as sysdba << EOF
select PARTITION_NAME 
from dba_tab_partitions 
where table_name='AUD$' and PARTITION_NAME not like '%FIRST%' and rownum<2
order by PARTITION_NAME asc;
EOF'
echo $OLDEST_PARTITION

E o resultado é este:

sqlplus / as sysdba << EOF select PARTITION_NAME from dba_tab_partitions where table_name=AUD and PARTITION_NAME not like %FIRST% and rownum<2 order by PARTITION_NAME asc; EOF
    
por john true 01.08.2016 / 09:57

1 resposta

0

Como meuh apontou, a menos que você copie / cole o script incorretamente , você tem marcas de aspas simples onde precisa ter backticks. Mudá-los transforma o script em:

#!/bin/ksh
OLDEST_PARTITION='sqlplus / as sysdba << EOF
select PARTITION_NAME 
from dba_tab_partitions 
where table_name='AUD$' and PARTITION_NAME not like '%FIRST%' and rownum<2
order by PARTITION_NAME asc;
EOF
'
echo "$OLDEST_PARTITION"

Tive o cuidado de manter o EOF em sua própria linha e também citar a variável OLDEST_PARTITION.

    
por 02.08.2016 / 05:52