java.sql.SQLException:ORA-06550

java.sql.SQLException:ORA-06550,java,ora-06550,Java,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 =

当我试图执行这个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; 

删除“;”在结束IF语句之后,再次运行它。

为什么在查询末尾有一个“/”?@HimanshuYadav,我刚刚更新了我的问题,在删除该/”之后,我得到了另一个异常。当您删除
/
时,您删除了
也是。你能用
试试吗?打印出实际的查询字符串。如果您能看到实际查询的问题所在,那么修复创建它的代码就更容易了。@StephenC,我刚刚用控制台上打印的字符串更新了问题。我在删除
后出现此错误
from-END IF-
java.sql.SQLException:ORA-06550:第1行第426列:PLS-00103:在预期以下情况之一时遇到符号“END”:这已在其他线程上修复-