Пожалуйста, обратитесь к моему образцу,
В Oracle DB они ниже SP
CREATE OR REPLACE PROCEDURE SP_TEST_PUTLINE AS
BEGIN
DBMS_OUTPUT.ENABLE;
dbms_output.put_line('Hello world!');
END SP_TEST_PUTLINE;
Я использую оболочку Unix для вызова SP, чтобы получить dbms_output.put_line('Hello world!')
от SP, как мне это сделать.
Я использую команду sqlplus для входа в БД, кажется, не могу получить желаемый результат.
output=$(IFS='';echo connect ${DBUSER}/${DBPASS}@${ORACLE_SID} execute SP_TEST_PUTLINE|sqlplus -s /nolog )
Кто-нибудь может мне помочь?
Заранее спасибо ...
------------------------------------ разделительная линия 20180705 -------- -----------------------------
Спасибо за помощь Алексу и Каушику Наяку, очень помогли.
ниже приведены некоторые выводы для Каушика Наяка, см.
Привет Каушик, работает, но сначала не получилось с ошибкой ниже
unknown command beginning "-e connect..." - rest of line ignored. SP2-0734:
Так что я меняю опцию echo -e на echo, тогда она работает.
Итак, вот вопросы
1) почему я использую опцию echo без -e, результат может быть ниже, это вызвано IFS?
echo "abc\n def \nghi"
abc
def
ghi
2) согласно комментариям Алекса, где два варианта нужно записать их в две строки? но вы не использовали \ n между ними
set serveroutput on
set feedback off
и когда я добавляю \ n между ними, как показано ниже, он допускает ошибку, как показано ниже, но "мир hellow!" имеет выход
SP2-0734: unknown command beginning "feedback o..." - rest of line ignored. Hello world! PL/SQL procedure successfully completed.
вот вопрос, почему вы не использовали \ n между включенным выходом сервера и отключенной обратной связью, эта команда БД (отключенная обратная связь) была выполнена успешно?
С нетерпением ждем вашего ответа.
заранее спасибо!