2013-02-19 3 views

ответ

1

Эта архитектура обычно не делает много смысла ...

Вы могли бы, предполагая, что файл .SQL хранится на сервере базы данных, написать/SQL блок PL, который использует UTL_FILE для чтения файла , определить разделители, а затем использовать динамический SQL для выполнения каждого отдельного оператора. Но это было бы довольно большой объем работы, чтобы получить право.

Опять же, предполагая, что .SQL-файл хранится на сервере базы данных, вы также можете написать хранимую процедуру Java, вызвавшую хост-операционную систему, запустив SQL * Plus, подключив ее обратно к базе данных и выполнив. SQL-файл. Это будет меньше, чем попытка самостоятельно проанализировать содержимое файла. Но это будет второй сеанс и отдельный исполняемый файл, который добавит кучу сложности.

Есть ли причина, по которой вы не просто запускаете SQL * Plus, передаете ее .SQL-файл и запускаете SQL * Plus? Что добавляет PL/SQL в этой ситуации?

+0

Что касается этой идеи: я тестировал создание Java-программы, которая читает файл .sql с помощью схемы Oracle. Но у меня проблема с комментариями в файл sql. Возможно ли создать Java-программу, которая запускает блок PL/SQL из кода Java, тогда блок PL/SQL считывает sql-файл и создает схему Oracle. Основная цель - создать автономное приложение Java, которое устанавливает схему Oracle по сети или развертывается на сервере Oracle. Любая идея, что является лучшим решением? – user1908169

+0

@ user1908169 - PL/SQL работает на сервере базы данных, поэтому он имеет доступ только к ресурсам, которые имеет база данных. Если вы говорите о приложении Java, использующем установщик, это приложение, предположительно, работает где-то, кроме сервера базы данных. Поэтому было бы бессмысленно пытаться использовать PL/SQL. Если это продукт, который вы строите, представляется более разумным предоставить ему другой входной файл, в котором хранятся операторы, которые вы хотите запустить, в формате, который проще разобрать (скажем, XML-файл). –

+0

@ user1908169 - С точки зрения безопасности, однако, администраторы баз данных Oracle будут гораздо более охотно брать файл .SQL, который вы предоставляете и выполняете, вместо того, чтобы предоставлять любую учетную запись базы данных Oracle, которую они должны настроить для вашего приложения, для подключения к привилегии создавать кучу объектов (вдвойне так, если вы действительно хотите создать схему, которая будет означать создание пользователя). –

Смежные вопросы