powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запустить "Oracle command"-файл из моего приложения?
8 сообщений из 8, страница 1 из 1
Как запустить "Oracle command"-файл из моего приложения?
    #33710026
Latent Force
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
Уже обыскался, может подскажет кто? Требуется установить соединение с БД Oracle и выполнить содержимое command-файла, как это делает "sqlplus". Как это правильно делается, подскажите? Использовать OCI-ный драйвер нужно или тонкий подойдет. И как получать ответы сервера на эти команды?
Если где-то уже поднималась такая тема, то ткните носом, сам не нашел.

Файло вида:
==============
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
set feedback off
set define off
prompt Dropping table...
drop table MY_TABLE cascade constraints;
prompt Creating table...
create table MY_TABLE
(
  ID   NUMBER(12) not null,
  CODE VARCHAR2(6)
)
tablespace TS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 66K
    minextents 1
    maxextents unlimited
  );
alter table MY_TABLE
  add constraint PK_MY_TABLE primary key (ID)
  using index 
  tablespace TS_INDEX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 66K
    minextents 1
    maxextents unlimited
  );
insert into MY_TABLE (ID, CODE)
values (1, '001');
insert into MY_TABLE (ID, CODE)
values (2, '002');
insert into MY_TABLE (ID, CODE)
values (3, '003');
insert into MY_TABLE (ID, CODE)
values (4, '004');
commit;
set feedback on
set define on
prompt Done.
====================
...
Рейтинг: 0 / 0
Как запустить "Oracle command"-файл из моего приложения?
    #33710498
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проще запустить sqlplus и направить ему на вход текст командного файла
...
Рейтинг: 0 / 0
Как запустить "Oracle command"-файл из моего приложения?
    #33710566
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе надо выполнить именно все указанные команды, или задача состоит в том,
чтобы создать таблицу и наполнить ее данными?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как запустить "Oracle command"-файл из моего приложения?
    #33710853
Latent Force
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlackWallПроще запустить sqlplus и направить ему на вход текст командного файла
А как программно сделать это?

Denis Popov
Тебе надо выполнить именно все указанные команды, или задача состоит в том,
чтобы создать таблицу и наполнить ее данными?
Posted via ActualForum NNTP Server 1.3
Нет это частный случай я привел. В идеале таким способом хотелось бы выполнять и создание процедур и пакетов и прочего.
...
Рейтинг: 0 / 0
Как запустить "Oracle command"-файл из моего приложения?
    #33710943
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Latent Force wrote:
> В идеале таким способом хотелось бы выполнять и создание процедур и пакетов и прочего.

В реальности все объекты БД можно создать через java.sql.Statement и без
ораклового клиента вообще. Другое дело, если не ты создаешь скрипты на создание
объектов, а пользуешься сторонними, заточенными под sqlplus, то придется либо
самостоятельно разбирать их на составляющие и выкидывать все ненужное, либо
выполнять sqlplus'ом через Runtime.exec(), гадая про способ отлавливания ошибок
после их выполнения.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как запустить "Oracle command"-файл из моего приложения?
    #33711189
Latent Force
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov
Другое дело, если не ты создаешь скрипты на создание
объектов, а пользуешься сторонними, заточенными под sqlplus, то придется либо
самостоятельно разбирать их на составляющие и выкидывать все ненужное, либо
выполнять sqlplus'ом через Runtime.exec(), гадая про способ отлавливания ошибок
после их выполнения.
Да в этом-то и дело, что под sqlplus. А если делать через Runtime.exec(), то как мне на клиенте вызывать sqplus сервера? Опишу сейчас суть задачи. Есть некоторое количество серверов, список которых хранится в таблице некоторой БД. Этот список может изменяться во времени. Частенько встает необходимость выполнения различных скриптов на всех этих серверах (а может на некоторых из них). У меня есть sqlplus'овый скрипт, который коннектится ко всем этим серверам и исполняет указанный ему файл. Но постоянно приходится следить за актуальностью списка серверов в нем. И тут возникают всегда проблемы (так сказать "человеческий фактор"), то не сменил адрес, то забыл внести новый сервер. А в БД все равно эта информация ведется. Поэтому и хотелось написать программу, которая бы получала список серверов, последовательно соединялась с ними и выполняла скрипт. С простыми-то запросами, типа создания, удаления, выбора из таблицы я справился без проблем. А вот дальше дело как-то осложнилось...
А вот мне интересно, как реализован этот механизм, например, в PL/SQL Developere?
...
Рейтинг: 0 / 0
Как запустить "Oracle command"-файл из моего приложения?
    #33711217
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Latent Force wrote:

Да в этом-то и дело, что под sqlplus. А если делать через
> Runtime.exec(), то как мне на клиенте вызывать sqplus сервера?

Разве что sqlplus клиента, т.е. той машины, на которой запускается java.

> А вот мне интересно, как реализован этот механизм, например, в PL/SQL
> Developere?

ИМХО он и все остальные занимаются разбором скриптов сами по себе. В PL/SQL
Developere есть окно Command Window, почти sqlplus, но по-моему это не sqlplus,
поскольку не поддерживаются некоторые плюсные команды. Разработчики решили (и
по-моему это тенденция) разбирать скрипты на отдельные команды самостоятельно.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как запустить "Oracle command"-файл из моего приложения?
    #33711297
Latent Force
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov
разбирать скрипты на отдельные команды самостоятельно.
Эх... Именно этого мне и не хотелось, хотел легкой кровью отделаться. Ладно попробуем. Спасибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запустить "Oracle command"-файл из моего приложения?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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