powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Передача команд в sqlplus (из cmd-скрипта через pipe)
2 сообщений из 2, страница 1 из 1
Передача команд в sqlplus (из cmd-скрипта через pipe)
    #38269958
Arlik2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема: после обработки первого if не выполняются остальные команды передаваемые в sqlplus.

Описание:
1) если присвоить переменной окружения var значение 1, то я ожидаю увидеть выполнение двух запросов
select 1 from dual;
и
select 33 from dual;

а вижу только один - select 1 from dual;

2) если присвоить переменной окружения var значение 2, то я снова ожидаю увидеть выполнение двух запросов
select 2 from dual;
и
select 33 from dual;

но нет никвкого вывода, намека на выполнение хоть одного запроса

3) обратите внимание, что условные операторы корректно отрабатывают при выводе в файл

4) PowerShell и другие оболочки не предлагайте! Для задачи используется старая-добрая "MS-DOS" консоль.

CMD-файл прикреплен к сообщению, ниже также его код (если кому лень скачивать):
cls
set var=2
(
Echo sample text1
Echo sample text2
if "%var%"=="1" echo select 1 from dual;
if "%var%"=="2" echo select 2 from dual;
if "%var%"=="3" echo select 3 from dual;
Echo sample text3
) > logfile.txt

(
echo spool t.txt
if "%var%"=="1" (echo select 1 from dual;)
if "%var%"=="2" (echo select 2 from dual;)
if "%var%"=="3" (echo select 3 from dual;)
echo select 33 from dual;
echo spool off
echo exit
) | SQLPLUS patcher/patcher@devnext

goto :eof
...
Рейтинг: 0 / 0
Передача команд в sqlplus (из cmd-скрипта через pipe)
    #38270287
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
(
 set var=2
 echo spool t.txt
 echo select 33 from dual;
 echo spool off
 echo exit
) | SQLPLUS ееееееее/ннннннннннн@222222222 1>super_out 2>super_error
спулит.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
cls
set var=2
(
 echo spool t.txt
 if "%var%"=="1" echo select 1 from dual;
 if "%var%"=="2" echo select 2 from dual;
 if "%var%"=="3" echo select 3 from dual;
 Echo select 33 from dual;
 Echo exit
) > SQL_PLUS_COMMANDS.sql
SQLPLUS ееееее/ггггггггг@88888888 @SQL_PLUS_COMMANDS.sql
- тоже ((((((((( неакуратненько конечно, конвеер посимпатичнее.

мораль - писать сложную логику в батниках можно только "ненормальным программистам" с хабра... .
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Передача команд в sqlplus (из cmd-скрипта через pipe)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]