powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Батник подключается в бд и удаляет записи которые в .TXT
18 сообщений из 18, страница 1 из 1
Батник подключается в бд и удаляет записи которые в .TXT
    #39474186
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Подскажите пож-та. Нужно подкл к базе и удалять строки значение поля которое находится в файле ТХТ, там их несколько.

.bat

Set nls_lang=american_america.c18mswin1251
sqlplus.exe -l user/pasw@bd @del.sql>del.txt
exit

del.sql

delete from table where id=list.txt (вот тут надо через переменную. помоги плиз)
quit


del.txt

11111
22222
33333
Типо этого выглядит .txt Нужен цикл.
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39474206
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39474211
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте внешнюю таблицу для получения значений из файла.
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39474625
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут надо как то по другому. Подскажите как сделать запрос, с условием где поле = значению из файла (там несколько значений, и пусть все равно xml это или txt)
Батник написала, вот..Только нюанс есть)О котором я естественно не подумала)
.bat

cd /d "D:\2"
set NLS_lang=american_america.cl8mswin1251
setlocal enabledelayedexpansion
for /f %i in (list.txt) do (
set doc= %i
SQLPLUS.EXE -L usr/******@bd
Delete from pdm_doc_l where doc= '%i';
)
После подключения к SQL мою переменную он не понимает)))) Дуреха я)

Блин, как из файла чтоб значение подставлялось. Дайте хоть ссыль, а то и инетом видать пользоваться не умею)
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39474628
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPLUS.EXE -L 591078/591078q@otl @D:\2\del.sql > D:\2\test.txt

тоже делала
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39474630
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
islily,

а кто формирует del.txt?
Если Вы то можно выгрузить как-то так
Код: plsql
1.
select 'Delete from pdm_doc_l where doc= '||ID||' ;' from ...



тогда по нему не надо будет циклов делать

по последнему - не вижу Commit;

И что значит не понимает? ошибка какая-то есть? сделай echo %i и посмотри ...
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39474762
Фотография Takurava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
islilyfor /f %i in (list.txt) do (
set doc= %i
SQLPLUS.EXE -L usr/******@bd
Delete from pdm_doc_l where doc= '%i';
)
После подключения к SQL мою переменную он не понимает
Надо сделать файл del.sql
Код: plsql
1.
2.
3.
delete from pdm_doc_l where doc='&1';
commit;
exit


и вызывать SQLPLUS
Код: plsql
1.
SQLPLUS.EXE -L usr/******@bd @del.sql %i

(или %%i - точно не скажу)
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475230
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takurava,

Просит ввести значение для i и ждет, ввожу -удаляет.
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475250
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А неееее, Enter надо нажимать постоянно. Щас попробую найти как сделать без нажатия
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475252
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запуталась я чет
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475255
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВСЁ НОРМ
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475264
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takurava,

Спасибо, сейчас думаю над тем чтоб ОДИН РАЗ подключился к базе, а то каждый раз подключается и отключается
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475362
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
d:\tmp>for %i in ( 1 2 3 4 ) do @echo %i >> test.txt

d:\tmp>type test.txt
1
2
3
4

d:\tmp> for /?
...
FOR /F "" %i in (мойфайл.txt) do @echo %i %j %k
...


d:\tmp>FOR /F "tokens=1" %i in (test.txt) do @echo delete from table where id=%i;
delete from table where id=1;
delete from table where id=2;
delete from table where id=3;
delete from table where id=4;

d:\tmp>(FOR /F "tokens=1" %i in (test.txt) do @echo delete from table where id=%i; 
@echo commit;
)| sqlplus -s -l /
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475482
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin,

Спасибо, всё понятно кроме...

for /F "tokens=1" %i in (list.txt) do @echo delete from pdm_doc_l where doc=%i; & @echo commit;) |sqlplus.exe -l user/******@bd>>test.txt

Команды сформировали, а sqlplus.exe не знает какие команды выполнять, не удаляет он, вхолостую работает
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475506
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
islilyVadim Lejnin,

Спасибо, всё понятно кроме...

Команды сформировали, а sqlplus.exe не знает какие команды выполнять, не удаляет он, вхолостую работает

Код: plsql
1.
2.
3.
4.
5.
6.
for /F "tokens=1"  %i in (list.txt) do @echo delete from pdm_doc_l  where doc=%i; & @echo commit;) |sqlplus.exe -l user/******@bd>>test.txt

d:\tmp>for /F "tokens=1" %i in (test.txt) do @echo delete from pdm_doc_l where doc=%i; & @echo commit;)
delete from pdm_doc_l where doc=1;
commit;)
...



1) Выделенное опечатка или есть входящий "("?
2) В bat файле скорее всего нужно нужно использовать %%i, проверять лень

Закомментируйте и проверьте какие точно команды передаются на sqlplus
Код: plsql
1.
|sqlplus


Скорее всего валится всякий лишний мусор

3) Я бы использовал более гибкое форматирование
Код: plsql
1.
2.
3.
4.
5.
6.
(
@echo set line 1500 trimspool on pages 0 feed off echo on
@ echo spool test.txt
@for /F "tokens=1" %i in (test.txt) do @echo delete from pdm_doc_l where doc=%i;
@echo commit
)|sqlplus



4) + обработка sqlerror oserr sqlplus reference
Код: plsql
1.
2.
@echo SQLERROR EXIT SQL.SQLCODE
@echo WHENEVER OSERROR FAILURE 




p.s. испольуйте Тэги и оформление Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475541
islily
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin,

по поводу %%i в батфайле я знаю, использую %i так как кидаю пока в cmd сама команды
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39475666
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*PlusИспользуйте внешнюю таблицу для получения значений из файла.
+1

Код: plsql
1.
delete table where id in (select id from external_table)


где external_table питается из текстового файла
...
Рейтинг: 0 / 0
Батник подключается в бд и удаляет записи которые в .TXT
    #39476447
bat_file
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С помощью этой утилиты ( sqlpptool.com ) можно написать, к примеру, такой скрипт:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
{
  s := '';
  s.loadfromfile('C:\temp\list.txt');
  n := s.count;
  i := 0;
  while i < n do {
    x := s.strings[i];
    ExecSQL(`delete from tmp_table where tt_n0 = :x`);
    inc(i);
    }
  ExecSQL(`commit`);
}
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Батник подключается в бд и удаляет записи которые в .TXT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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