2014-01-15 4 views
0

У меня возникли проблемы с подключением к базе данных с sqlplus в пакетном файле. Я пытаюсь создать пакетный скрипт, который запрашивает имя сервера/службы, имя пользователя и пароль. Это выглядит примерно так:batch script login Параметры sqlplus

set /P ORCL=Enter server or service_name: 
    set /P UN=Enter DB User: 
    set /P PWD=Enter password for DB user: 
    sqlplus %UN%/%PWD%@ORCL @.\File_to_run.sql 

    ... 

Я не использую TNS локально, но подключение с Имя_машины, как это:

username/[email protected]:1521/service_name 

Это прекрасно работает, когда я начиная SQLPLUS через CMD проворная, но не тогда, когда я запускаю этот bat-файл. В нем указано, что имя пользователя или пароль неверны и запрашивают имя пользователя и пароль ...

Я думаю, что это может быть что-то С переменной ORCL, когда она помещается в список параметров sqlplus. Но я попытался процитировать это так:

... 
    sqlplus %UN%/%PWD%"@ORCL" @.\File_to_run.sql 

и

sqlplus %UN%/%PWD%@"ORCL" @.\File_to_run.sql 

Но не успех ... Если бы я попробовать то же самое, но вместо @ service_name/_string с помощью "AS SYSDBA" и соответствующее имя пользователя и пароль, он будет работать нормально. Кто-нибудь знает, как правильно это сделать?

BR ФАО

ответ

0

Пожалуйста, используйте знак процента для последнего параметра тоже. Как:

sqlplus "%UN%/%PWD%@%ORCL%" @.\File_to_run.sql 

Я не знаю, почему вам нужно знак @ перед \ File_to_run.sql ...

+0

Моя ошибка ... Я использую знаки процента :-) как это.: sqlplus% UN% /% PWD% @% ORCL% @. \ file.sql @ перед тем, как файл будет запущен, будет особый знак sqlplus, поэтому он должен быть там :-) – Frankie

+0

Вышеупомянутый код решения проблемы ? Обратите внимание, что первый параметр находится в двойных кавычках. Вам нужно ввести значение «машинное имя: 1521/service_name» для ввода ORCL. –

+0

Большое спасибо @mihai_mandis. Он работал очень vell :-) – Frankie