Наверное, я очень опаздываю на вечеринку.
Как уже говорилось ранее, вызов input.nextLine()
после получения вашего значения int решит вашу проблему. Причина, по которой ваш код не работал, заключается в том, что с вашего ввода (куда вы ввели int) ничего не оставалось хранить в string1
.
Рассмотрим nextLine () как нечетный среди методов nextFoo () в классе Scanner. Давайте возьмем быстрый пример. Скажем, у нас есть две строки кода, подобные приведенным ниже:
int firstNumber = input.nextInt();
int secondNumber = input.nextInt();
Если мы вводим значение ниже (как одну строку ввода)
54 234
blockquote>Значение нашей переменной
firstNumber
иsecondNumber
становится 54 и 234 соответственно. Причина, по которой это работает, заключается в том, что новый канал ( i.e\n ) НЕ НЕ автоматически генерируется, когда метод nextInt () принимает значения. Он просто берет «следующий int» и движется дальше. Это то же самое для остальных методов nextFoo (), за исключением nextLine ().nextLine () генерирует новый фид строки сразу после принятия значения; это то, что означает @RohitJain, говоря, что новый канал «потребляется».
Наконец, метод next () просто берет ближайшую строку без создания новой строки; это делает это предпочтительным методом для взятия отдельных строк в одной и той же строке.
Надеюсь, это поможет ... Веселая кодировка!
Postgres началась в Linux / Unix. Я подозреваю, что реверсирование косой черты с исправлением.
\i somedir/script2.sql
Если вам нужно полностью квалифицировать что-то
\i c:/somedir/script2.sql
Если это не исправить, мое следующее предположение будет вам нужно избегать обратной косой черты.
\i somedir\\script2.sql
Пробовали ли вы использовать слайсы в стиле Unix (/ вместо \)?
\ часто являются символом escape или командной строки и могут быть источником путаницы. У меня никогда не было проблем с этим, но у меня также нет Windows, поэтому я не могу его протестировать.
Кроме того, разрешения могут быть основаны на пользователе, выполняющем psql, или, возможно, на пользователя, выполняющего службу postmaster , убедитесь, что оба файла были прочитаны в этом каталоге.
Попробуйте это, я сам это сделаю
\i 'somedir\\script2.sql'
Я попробовал это и его работу в Windows-машине для запуска sql-файла на определенной схеме.
psql -h localhost -p 5432 -U имя пользователя -d имя_базы_на_схема = schemaname & lt; e: \ Table.sql
blockquote>