sql >> Databáze >  >> RDS >> Oracle

Vložte výsledek select do proměnné ksh

Jako základní osnovu můžete spustit SQL*Plus s heredoc k provedení dotazu a přiřadit výstup proměnné:

P_NUMBER=`sqlplus -s /nolog <<!EOF
connect username/password
whenever sqlerror exit failure
set pagesize 0
set feedback off
select your_value from your_table where your_key = 'something'; 
exit 0
!EOF`

Uzavření do zpětných znamének přiřadí výsledek proměnné. $P_NUMBER pak bude obsahovat jakoukoli hodnotu, kterou váš dotaz získal (nebo chybovou zprávu, pokud byly přihlašovací údaje, řekněme). Pomáhá, pokud jste si jisti, že dotaz vrátí přesně jeden výsledek. Můžete také otestovat návratový kód pomocí $? hledat chyby, než se pokusíte použít svou proměnnou.

Včetně -s příznak, vypnutí zpětné vazby a nastavení velikosti stránky na nulu společně potlačí veškerý šum, takže získáte pouze výsledek a nemusíte odstraňovat bannery, nadpisy atd.

A nakonec jsem použil /nolog a vložte connect prohlášení uvnitř heredoc, aby se přihlašovací údaje nezobrazovaly v seznamu procesů, což je často přehlížený bezpečnostní problém. Pokud to nechcete a uděláte to, vložte přihlašovací údaje jako sqlplus username/passwd , můžete přidat -l příznak, aby se pokusil přihlásit pouze jednou; v opačném případě, pokud se přihlášení z nějakého důvodu nezdaří, pokusí se použít zbytek heredocu jako další pověření a může se zdát, že zasekne krátké skripty.




  1. MySQL – Zlepšete výkon aktualizačních dotazů pro složité výpočty

  2. Jak zvládnout vývoj databáze Play Framework 2 v produkci

  3. PostgreSQL s Homebrew na Mac

  4. SQLSTATE[HY000] [1045] Přístup odepřen uživateli 'username'@'localhost' pomocí CakePHP