statement.execute() возвращает ошибку с косой чертой в конце PL/SQL

При выполнении pl/sql я получаю сообщение об ошибке:

ORA-06550: line 1, column 316: PLS-00103: Encountered the symbol "/" The symbol "/" was ignored. 

Пример PLSQL:

DECLARE
   SQL1   VARCHAR2 (1500);
   SQL2   VARCHAR2 (1500);
BEGIN
   SQL1   := 'INSERT INTO das_html_caption VALUES (''test_test'')';
   SQL2   := 'DELETE FROM das_html_caption where wording = ''test_test''';

   EXECUTE IMMEDIATE SQL2;

   EXECUTE IMMEDIATE SQL1;

   EXECUTE IMMEDIATE SQL2;

   COMMIT;
END;
/

Ява:

Statement statement = dbConnection.createStatement();
ResultSet rs = null;
boolean ret = statement.execute( sql.getValue() );

это правильная ошибка? или я что-то не так делаю?

Спасибо


person Igor Konoplyanko    schedule 18.02.2010    source источник


Ответы (2)


Косая черта — это то, как вы выполняете анонимный блок в интерактивной среде, такой как SQL*Plus. Если вы выполняете этот блок вызовом из Java, вам не нужна завершающая косая черта.

person dpbradley    schedule 18.02.2010

Нашел ответ. Пришлось сделать более сложный запрос в гугл :)

Как видно из сообщения, компилятор не хочет встречать символ "/", поэтому просто удалите его. Так просто. Позволь мне объяснить. При использовании sqlplus или рабочего листа SQL в sqldev вы хорошо дополняете свои блоки PL/SQL косой чертой. Однако при использовании редактора процедур (встроенного в sqldev) его придется удалить. Не знаю, зачем они сделали этот свод правил, но пока они их не ослабят, нам придется их соблюдать ;-)

http://forums.oracle.com/forums/thread.jspa?threadID=519670

person Igor Konoplyanko    schedule 18.02.2010