java.sql.SQLException: ORA-06550

Когда я пытаюсь выполнить этот оператор sql, я получаю исключение как-

java.sql.SQLException: ORA-06550: line 1, column 429:
PLS-00103: Encountered the symbol "/" The symbol "/" was ignored.

Это приведенная ниже строка sql, которую я выполняю. Что-то не так с этим sql? Он проверит, есть таблица или нет, если она есть, то не создаст таблицу, а если ее нет, то создаст таблицу.

    public static final String CREATE1 = "DECLARE " +
"t_count INTEGER; " +
"v_sql VARCHAR2(1000) := 'create table " +DATABASE_TABLE + " ( " +
"(ID number(10,0), " +
"CGUID VARCHAR(255), " + 
"PGUID VARCHAR(255), " + 
"SGUID VARCHAR(255), " + 
"USERID VARCHAR(255), " +
"ULOC VARCHAR(255), " +
"SLOC VARCHAR(255), " +
"PLOC VARCHAR(255), " +
"ALOC VARCHAR(255), " +
"SITEID VARCHAR(255), " +
"PRIMARY KEY ( ID ))'; " +
"BEGIN " +
"SELECT COUNT(*) " +
"INTO t_count " +
"FROM user_tables " +
"WHERE table_name = '" +DATABASE_TABLE + "'; " +

"IF t_count = 0 THEN " +
"EXECUTE IMMEDIATE v_sql; " +
"END IF; " +
"END; ";

Он печатается на консоли как-

DECLARE t_count INTEGER; v_sql VARCHAR2(1000) := 'create table LnPData((ID number(10,0), CGUID VARCHAR(255), PGUID VARCHAR(255), SGUID VARCHAR(255), USERID VARCHAR(255), ULOC VARCHAR(255), SLOC VARCHAR(255), PLOC VARCHAR(255), ALOC VARCHAR(255), SITEID VARCHAR(255), PRIMARY KEY ( ID ))'; BEGIN SELECT COUNT(*) INTO t_count FROM user_tables WHERE table_name = 'LnPData'; IF t_count = 0 THEN EXECUTE IMMEDIATE v_sql; END IF; END; 

person AKIWEB    schedule 27.05.2012    source источник
comment
Почему у вас есть '/' в конце запроса?   -  person Himanshu Yadav    schedule 27.05.2012
comment
@HimanshuYadav, я только что обновил свой вопрос, после удаления этого /.   -  person AKIWEB    schedule 27.05.2012
comment
Когда вы удалили /, вы также удалили ;. Можешь попробовать с ;?   -  person Nivas    schedule 27.05.2012
comment
Распечатайте фактическую строку запроса. Если вы видите, в чем проблема с фактическим запросом, вам будет легче исправить код, который ее создает.   -  person Stephen C    schedule 27.05.2012
comment
@StephenC, я только что обновил вопрос строкой, которая печатается на консоли.   -  person AKIWEB    schedule 27.05.2012


Ответы (1)


Удалять ';' после вашего оператора END IF и запустите его снова.

person Himanshu Yadav    schedule 27.05.2012
comment
Я получил эту ошибку после удаления ; из END IF- java.sql.SQLException: ORA-06550: line 1, column 426: PLS-00103: Encountered the symbol "END" when expecting one of the following: ; - person AKIWEB; 27.05.2012
comment
Это было исправлено в другом потоке - stackoverflow.com/questions/ 10771189/ - person AKIWEB; 27.05.2012