2010-02-18 2 views
3

При выполнении PL/SQL IM получить ошибку:statement.execute() возвращает ошибку с Слэш в конце 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; 
/

Java:

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

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

Благодаря

ответ

8

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

2

Найдено ответов. Пришлось сделать более complcated запрос на Google :)

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

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

Смежные вопросы