2015-07-30 4 views
3

Я пытаюсь собрать командный файл, чтобы просто выполнить файл .sql, который у меня есть. Код, я использую в партии является:Выполнение файла SQL путем запуска пакетного файла

REM JOB.BAT 

SQLPLUS -S username/[email protected] @C:\Users\username\Desktop\testsql.sql 


EXIT 

Я получаю сообщение об ошибке:

"ОШИБКА: ORA-12154: TNS: не удалось разрешить идентификатор подключения указанного"

I думаю, проблема заключается в том, что мой пароль содержит символ @, поэтому он начинает считывать имя удаленной базы данных в середине пароля, а не просто читать «db». Поэтому, если мой пароль был «p @ ssword», он ищет базу данных под названием «ssword @ db», которая не существует.

Есть ли короткий путь вокруг этого или меняет мой пароль, единственный способ сделать это?

Спасибо!

+0

Если TNS не настроен правильно, то вы можете просто позвонить в базу данных в явном виде: – Fudztown

+1

вы можете попробовать поставить кавычки круглый имя пользователя/пароль @ DB, но Честно говоря, я считаю, что лучше всего изменить пароль – davegreen100

+0

[Документация] (http://docs.oracle.com/cd/B19306_01/network.102/b14212/connect.htm#i435636) вряд ли может быть более расплывчатым. Это предполагает, что вы можете процитировать вторую часть (что такое aftet знак @), но ничего не говорит о паролях ... –

ответ

0

Если TNS не настроен правильно, то вы можете просто вызвать базы данных в явном виде:

sqlplus 'user/[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))' 
1

Вам нужно процитировать строку пароля, используя все, что подходит для вашей операционной системы. Похоже, что вы используете Windows, так, попробуйте это:

SQLPLUS -S username/'password'@db @C:\Users\username\Desktop\testsql.sql 
+0

[Эта статья] (http://www.thebonsai.net/2011/03/24/escaping-special-characters -in-sqlplus-logon-strings /), похоже, подтверждает это. Я много раз просматривал документацию Oracle, и я никогда не мог найти официальную ссылку. –

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