Oracle 10g - недопустимый символ при импорте БД - PullRequest
2 голосов
/ 22 августа 2011

У меня есть несколько файлов SQL, которые я хочу импортировать.

Пример:

CREATE TABLE BB_Department (
    idDepartment number(2)  ,
    DeptName varchar2(25) ,
    DeptDesc varchar2(100) ,
    DeptImage varchar2(25) ,
    CONSTRAINT dept_id_pk PRIMARY KEY(idDepartment) );
insert into bb_department 
   values(1,'Coffee','Many types of coffee beans','coffee.gif');

При импорте этого с http://localhost:8080/apex я постоянно получаю «недопустимый символ»ошибка.

Кажется, что одновременно можно выполнить только ОДИН оператор SQL.Ошибка вызывается любыми точками с запятой.

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

Как можно импортировать дампфайлы, в веб-интерфейсе, не вызывая это?

1 Ответ

2 голосов
/ 29 августа 2011

Я все еще не совсем уверен, какой «веб-инструмент Apex» вы используете.Я предполагаю, что это веб-интерфейс Oracle 10g Express Edition (Oracle 10g XE).

Если я скопирую ваш оператор SQL в текстовый файл и загрузлю его как скрипт SQL, я могу запустить его без ошибок,Он создает таблицу и вставляет одну строку.Точки с запятой просто хороши как разделители операторов.

Чего нельзя сказать о странице интерактивных команд SQL.Я могу успешно выполнить команду, если это будет единственная команда в области редактирования (без точки с запятой или косой черты) или если я сначала выберу команду (снова без точки с запятой или косой черты).Тем не менее, эта страница не может выполнять несколько команд (с указанием ORA-00911, ORA-00910, ORA-00933 или ORA-00905).

Возможно, некоторые из этих проблем вызваны несовместимостью браузера.В Firefox 6 я не могу запускать или редактировать сценарии SQL.Я вижу неформатированный текст SQL, но он доступен только для чтения и имеет красный фон.Все кнопки сверху не работают (или, скорее, выдают исключение в консоли ошибок Javascript в Firefox).В IE 9 это, кажется, работает.

В общем, вы можете использовать точку с запятой или косую черту в отдельной строке для разделения команд в сценариях Oracle SQL.Так что это либо:

insert into bb_department 
  values(1,'Coffee','Many types of coffee beans','coffee.gif');
insert into bb_department 
  values(2,'Sugar','Sweet','sugar.gif');

Или:

insert into bb_department 
  values(1,'Coffee','Many types of coffee beans','coffee.gif')
/
insert into bb_department 
  values(2,'Sugar','Sweet','sugar.gif')
/

Если у вас есть блок BEGIN / END, либо для анонимного блока PL / SQL, либо для хранимой процедуры / функции / пакета,вы должны использовать косую черту.

Надежным инструментом для запуска сценариев SQL является инструмент командной строки SQL * plus.Он определенно поддерживает точки с запятой и косую черту.Помимо операторов SQL и блоков PL / SQL, он также поддерживает несколько дополнительных полезных команд.

Графический, бесплатный и полезный инструмент - SQL Developer (от Oracle).Он поддерживает операторы SQL, блоки PL / SQL и большинство команд SQL * plus.

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