Maven загружает все зависимости в папку .m2/repository
в домашнем каталоге пользователя (то есть C:\users\[your user name]\.m2\repository
в Windows. Когда вы удаляете эту папку, Maven создает папку и загружает зависимости для проектов, которые вы строите, с этого момента). .
Если вы хотите изменить папку на другой каталог, вы можете поместить файл конфигурации Maven settings.xml
в каталог .m2
. Пример файла можно найти в вашем дистрибутиве Maven в conf
. Затем найдите запись localRepository
, которая должна быть закомментирована следующим образом:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
Активируйте ее, установите желаемый путь, например, заставьте Maven загрузить зависимости в D:\myMavenRepository
и установить ее. до
<localRepository>D:/myMavenRepository</localRepository>
Ограничения на DBLinks - Вы не можете создать ссылку на базу данных в схеме другого пользователя, и вы не можете квалифицировать dblink с именем схемы.
Сатья прав в том, что синтаксис CREATE DATABASE LINK
не позволяет создать ссылку на базу данных в другой схеме. ОДНАКО ...
ВОЗМОЖНОЕ РЕШЕНИЕ
Возможно создать ссылку на базу данных в схеме другого пользователя, если другой пользователь
имеет СОЗДАТЬ ССЫЛКУ БАЗЫ ДАННЫХ
привилегия, а пользователь, с которым вы подключены, имеет привилегию CREATE ANY PROCEDURE
.
Вот обходной путь, который я использую:
create procedure anotheruser."tmp_doit_200906121431" is begin execute immediate ' create database link remote_db_link connect to remote_user identified by remote_password using ''remote_db'' '; end; / begin anotheruser."tmp_doit_200906121431"; end; / drop procedure anotheruser."tmp_doit_200906121431" /
Давайте раскрутим его. Сначала я создаю процедуру в схеме anotherusers
; эта процедура содержит оператор CREATE DATABASE LINK
, который я хочу запустить.
Когда процедура выполняется, она запускается как владелец процедуры, так что оператор CREATE DATABASE LINK
выполняется другим пользователем
.
Имя процедуры не имеет значения, за исключением того, что мне нужно убедиться, что оно не конфликтует с любое существующее имя объекта. Я использую строчные буквы (заключаю имя процедуры в двойные кавычки), использую «tmp», чтобы пометить этот объект как «временный», и использую текущий yyyymmddhh24miss как часть имени процедуры. (Обычно я запускаю запрос DBA_OBJECTS, чтобы проверить, что соответствующее имя_объекта не существует.)
Для функции администратора «одноразового» типа это жизнеспособный обходной путь. Я предпочитаю это другой альтернативе: сохранение пароля другого пользователя, изменение пароля, подключение в качестве пользователя и сброс пароля другого пользователя обратно на сохраненный.)
Имя процедуры не имеет значения, за исключением того, что мне нужно убедиться, что оно не конфликтует с каким-либо существующим именем объекта. Я использую строчные буквы (заключаю имя процедуры в двойные кавычки), использую «tmp», чтобы пометить этот объект как «временный», и использую текущий yyyymmddhh24miss как часть имени процедуры. (Обычно я запускаю запрос DBA_OBJECTS, чтобы проверить, что соответствующее имя_объекта не существует.)
Для функции администратора «одноразового» типа это жизнеспособный обходной путь. Я предпочитаю это другой альтернативе: сохранение пароля другого пользователя, изменение пароля, подключение в качестве пользователя и сброс пароля другого пользователя обратно на сохраненный.)
Имя процедуры не имеет значения, за исключением того, что мне нужно убедиться, что оно не конфликтует с каким-либо существующим именем объекта. Я использую строчные буквы (заключаю имя процедуры в двойные кавычки), использую «tmp», чтобы пометить этот объект как «временный», и использую текущий yyyymmddhh24miss как часть имени процедуры. (Обычно я запускаю запрос DBA_OBJECTS, чтобы проверить, что соответствующее имя_объекта не существует.)
Для функции администратора «одноразового» типа это жизнеспособный обходной путь. Я предпочитаю это другой альтернативе: сохранение пароля другого пользователя, изменение пароля, подключение в качестве пользователя и сброс пароля другого пользователя обратно на сохраненный.)
t конфликтует с любым существующим именем объекта. Я использую строчные буквы (заключаю имя процедуры в двойные кавычки), использую «tmp», чтобы пометить этот объект как «временный», и использую текущий yyyymmddhh24miss как часть имени процедуры. (Обычно я запускаю запрос DBA_OBJECTS, чтобы проверить, что соответствующее имя_объекта не существует.)Для функции администратора «одноразового» типа это жизнеспособный обходной путь. Я предпочитаю это другой альтернативе: сохранение пароля другого пользователя, изменение пароля, подключение в качестве пользователя и сброс пароля другого пользователя обратно на сохраненный.)
t конфликтует с любым существующим именем объекта. Я использую строчные буквы (заключаю имя процедуры в двойные кавычки), использую «tmp», чтобы пометить этот объект как «временный», и использую текущий yyyymmddhh24miss как часть имени процедуры. (Обычно я запускаю запрос DBA_OBJECTS, чтобы проверить, что соответствующее имя_объекта не существует.)Для функции администратора «одноразового» типа это жизнеспособный обходной путь. Я предпочитаю это другой альтернативе: сохранение пароля другого пользователя, изменение пароля, подключение в качестве пользователя и сброс пароля другого пользователя обратно на сохраненный.)
(Обычно я запускаю запрос DBA_OBJECTS, чтобы проверить, что соответствующее имя_объекта не существует.)Для функции администратора «одноразового» типа это жизнеспособный обходной путь. Я предпочитаю это другой альтернативе: сохранение пароля другого пользователя, изменение пароля, подключение в качестве пользователя и сброс пароля другого пользователя обратно на сохраненный.)
(Обычно я запускаю запрос DBA_OBJECTS, чтобы проверить, что соответствующее имя_объекта не существует.)Для функции администратора «одноразового» типа это жизнеспособный обходной путь. Я предпочитаю это другой альтернативе: сохранение пароля другого пользователя, изменение пароля, подключение в качестве пользователя и сброс пароля другого пользователя обратно на сохраненный.)