#oracle #unix #sqlplus #sql-loader #tnsnames
Вопрос:
Я пытаюсь подключиться к базе данных oracle, запросить ее и отправить результаты в файл txt. Когда я запускаю свою инструкцию, это отображается в файле .txt:
На самом деле это должны быть значения из моего sql-скрипта.
Вот строка, которую я запускаю:
sql_file1=Cb.sql
sqlplus -s "username/pwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=my_host)(Port=1521))(CONNECT_DATA=(SERVICE_NAME=my_ser_name))))" @sql/$sql_file1 > /home/path/to/my/files/'cb.txt'
Какие-либо причины, по которым мой ‘cb.txt» файл показывает скриншот сверху вместо любой даты из запроса в моем файле sql?
Ответ №1:
У вас есть дополнительные )
данные в строке подключения:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=my_host)(Port=1521))(CONNECT_DATA=(SERVICE_NAME=my_ser_name))))
должно быть
sqlplus -s "username/pwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=my_host)(Port=1521))(CONNECT_DATA=(SERVICE_NAME=my_ser_name)))" @sql/$sql_file1 > /home/path/to/my/files/cb.txt
Но еще проще использовать строку EZConnect:
sqlplus -s "username/pwd@//my_host:1521/my_ser_name" @sql/$sql_file1