Oracle
 sql >> база данни >  >> RDS >> Oracle

Поставете резултата от избора в променлива ksh

Като основна схема можете да стартирате SQL*Plus с heredoc, за да изпълните заявката и да присвоите изхода на променлива:

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`

Ограждането в обратни точки присвоява резултата на променливата. Тогава $P_NUMBER ще съдържа каквато и да е стойност, получена от вашата заявка (или съобщение за грешка, ако идентификационните данни са грешни, да речем). Помага, ако сте сигурни, че заявката ще върне точно един резултат. Можете също да тествате кода за връщане с $? за да търсите грешки, преди да опитате да използвате вашата променлива.

Включително -s флаг, изключване на обратната връзка и задаване на размера на страницата на нула колективно потискат целия шум, така че да получите само резултата и да не се налага да премахвате банери, заглавия и т.н.

И накрая използвах /nolog и поставете connect декларация вътре в heredoc, така че идентификационните данни да не се показват в списъка с процеси, което е често пренебрегван проблем със сигурността. Ако не искате да направите това и поставете идентификационните данни като sqlplus username/passwd , можете да добавите -l флаг, така че да се опитва да влезе само веднъж; в противен случай, ако влизането е неуспешно по някаква причина, ще се опита да използва останалата част от heredoc като допълнителни идентификационни данни и може да изглежда, че спира с кратки скриптове.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите информация за грешка при компилиране в Oracle/TOAD

  2. Как да конвертирате десетичен в шестнадесетичен с помощта на TO_CHAR() в Oracle

  3. Грешка на Oracle ORA-06512

  4. Предоставяне на разрешение на потребители на различна схема

  5. ORA-04076:невалидна НОВА или СТАРА спецификация - PL/SQL - Oracle Trigger