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

Как да заснема резултата от съхранената процедура чрез скрипт на обвивката?

Версията на анонимния блок в скрипта на обвивката няма да бъде изпълнена, както е показано, защото нямате наклонена черта след блока, за да го стартирате . Ако стартирате това, изобщо не получавате резултат. Ако го промените да има наклонена черта:

sqlplus -silent [email protected] <<EOF
set serveroutput on
declare
  DE_REC_COUNT number(10);
begin
    DE_DUP_PROC ('T_MCL_30404_20150317_020','MCL','30404','FT',DE_REC_COUNT);
end;
/
EOF

тогава ще видите:

0

PL/SQL procedure successfully completed.

Вие показахте интерактивната версия в SQL*Plus също без наклонената черта, но трябва да сте я имали, за да видите резултата, който показахте.

Ако искате нулата - която изглежда идва от dbms_output извикайте във вашата процедура, а не директно от вашия анонимен блок - в променлива на обвивката, към която можете да се обърнете по-късно, можете да присвоите изхода на heredoc на променлива:

MY_VAR=`sqlplus -silent [email protected] <<EOF
set serveroutput on
set feedback off
declare

DE_REC_COUNT number(10);
begin
    DE_DUP_PROC ('T_MCL_30404_20150317_020','MCL','30404','FT',DE_REC_COUNT);
end;
/

EOF`

printf "Got back MY_VAR as %s\n" ${MY_VAR}

Обърнете внимание, че добавих set feedback off така че не виждате PL/SQL procedure successfully completed линия. Сега, когато стартирате това, ще видите:

Got back MY_VAR as 0

и можете да правите каквото трябва с ${MY_VAR} . Все пак зависи какво имате предвид под „улавяне“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свързване към SQL Server, Oracle, DB2 и MySQL едновременно чрез ADO.NET?

  2. Oracle търси в списък с думи в низ и преправя съществуващите

  3. Oracle заявка за сравняване на всички редове с еднакъв идентификатор в таблица

  4. Искам да предам променлив аргумент към външен SQL файл (PL/SQL с SQL*Plus)

  5. Данни от oracle в utf-8 с php