Итак, у нас есть сценарий оболочки, который должен вызвать анонимный блок и получить значение обратно.Анонимный блок составляет около 100 строк, поэтому он у нас есть в файле, поэтому для SQL * Plus он называется:
@/directory_path/anonymous_block "'param1'" "'param2'"
Да, мы передаем пару параметров.И в конце этого у нас есть DBMS_OUTPUT.PUT_LINE.......
Итак, у нас есть вопрос, как вернуть это в Shell?Мы пробовали различные типы кода, подобные этому:
proc=TEMPLATE1_MV<BR>
code=513
x=`print "
set heading off feedback off verify off timing off
@/u01/sql/stock_rpt_stats '$code' '$proc';
exit" | sqlplus -s $user/$pass`
y=`echo $x | awk '{print $1}'`<BR>
printf "HERE: $y\n"
Но не повезло, только ошибки.
Если это содержит только прямой SQL:
SELECT TRUNC(SYSDATE) FROM dual;
Это будет работать нормально, но без ссылки на файл, содержащий SQL.
Любой, у кого есть идеи, был бы великолепен.Заранее спасибо.