С Vim на использовании Windows Ctrl + Q вместо Ctrl + V
Я подключился к одному из своих компьютеров с Linux и довольно легко смог воспроизвести эту проблему. Кажется, я не могу найти способ выполнить файл с параметром '@' из командной строки, поэтому я думаю, что у вас остались следующие варианты для обхода:
Вы также должны отправить отчет в службу поддержки Oracle, так как они могут предоставить простое исправление.
Примеры команд:
From Directory
cd ../database/My\ Schema
sqlplus [uname]/[pw] @create_sequence.sql
Через стандартный ввод
sqlplus [uname]/[pw] < ../database/My\ Schema/create_sequence.sql
Что ж, если это проблема Linux (см. Мой комментарий к вашему вопросу - он отлично работает на Solaris), вам, возможно, придется попробовать что-то вроде:
sqlplus [uname]/[pw] < '../database/My Schema/create_sequence.sql'
Вы сталкиваетесь с проблемы, если вы пытаетесь передать параметры в свой sql-скрипт, однако ...
РЕДАКТИРОВАТЬ: Похоже, возникла проблема с Metalink для очень похожей проблемы: «Ошибка 7150873 SQL-скриптов с именем файла, содержащим пробелы, приводит к SP2- 0556 ". Он указан как влияющий на 10.2.0.4 и 11.1. Предположительно он исправлен в 10.2.0.5 и 11.2, но ни то, ни другое пока не доступно. В нем говорится, что это общая проблема, затрагивающая большинство / все платформы, поэтому я не знаю, ваша проблема или нет.
Конкретный текст проблемы: «Команде SQLPLUS START не удается выполнить сценарии SQL, которые имеют пробел в имени файла "
Просто для усмешки, что произойдет, если вы сделаете следующее:
sqlplus [uname]/[pw]
start '../database/My Schema/create_sequence.sql'
EDIT2: Я не знаю, возможно ли массовое изменение ваших скриптов, но может быть обходной путь:
cp '../database/My Schema/file2run.sql' ./temp.sql
sqlplus [uname]/[pw] @temp.sql
rm ./temp.sql
Вам нужно будет обернуть каждый вызов sqlplus таким образом. Другой вариант - создать сценарий оболочки, скажем, с именем mysqlplus.sh:
#!/bin/sh
cp $2 ./temp$$
sqlplus $1 @$2
rm ./temp$$
. Затем измените сценарии сборки следующим образом:
mysqlplus.sh [uname]/[pw] '../database/My Schema/create_sequence.sql'
Согласно этот поток на сайте OTN, SP2-0556 может быть вызван недопустимым символы пробела в исполняемом файле. Вероятно, версия SQL-Plus для Linux не знает, как работать с символом (-ами) новой строки Windows. Попробуйте удалить существующий файл и воссоздать его с помощью желаемых команд (вы сказали, что есть только 2 команды DDL, поэтому это должно быть легко).
вы пробовали экранировать пробел?
Попробуйте:
sqlplus [uname]/[pw] @'../database/My\ Schema/create_sequence.sql'
Если вы работаете с этим под Linux, вы можете экранировать пробел с помощью символа '\', например:
sqlplus [uname]/[pw] @../database/My\ Schema/create_sequence.sql