Команда @ не работает в SQL PLUS (ОС HP-unix) - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть файл sql (abc.sql), который содержит некоторый код. Я могу запустить это с помощью команды «run» как

SQL> run abc.sql
  1* select 1 from dual

         1

SQL>

Но не удается выполнить с помощью команды "@". Если я выполню, используя @, то просто вернусь к приглашению SQL без выполнения этого файла.

SQL>  @abc.sql
SQL>
SQL>

Не могли бы вы помочь мне решить эту проблему?

Между прочим, я использую Oracle 8.1.7.4.0 в HP-unix (Tru64 UNIX V5.1B (Rev. 2650)

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

run не выполняет содержимое файла.Скорее, он запускает содержимое буфера.

Документ (http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_twelve037.htm#sthref1803) гласит:

R [UN]

Спискии выполняет команду SQL или блок PL / SQL, хранящиеся в данный момент в буфере SQL.

Буфер не имеет списка истории команд и не записывает команды SQL * Plus.

Использование

RUN приводит к тому, что последняя строка буфера SQL становится текущей строкой.

Команда косой черты (/) работает аналогично команде RUN, но не перечисляет команду в буфере SQL.на вашем экране.Буфер SQL всегда содержит последний введенный оператор SQL или PL / SQL-блок.


Возможно, вы ошиблись run для команды start.

1 голос
/ 08 февраля 2011

в вашем файле имеют

select 1 from dual
/

вам нужно указать движку sql выполнить строку (/)

Редактировать

после @ введите "РЕДАКТИРОВАТЬ" и посмотрите, что говорит буфер:

SQL> @a.sql

         1
----------
         1

SQL> ed
Wrote file afiedt.buf

...

select 1 from dual
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...