java.sql.SQLException: ORA-06550: 第 1 行, 第 62 列:
PLS-00103: 出現符號 "月"在須要下列之一時:
) , * & | = - + < / > at in
is mod remainder not rem => .. <an exponent (**)>
<> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_
between || member SUBMULTISET_
符號 "," 被替換爲 "月" 後繼續。
ORA-06550: 第 1 行, 第 93 列:
PLS-00103: 出現符號 ","在須要下列之一時:
( - + case mod new not null
others <an identifier> <a double-quoted delimited-identifier>
<a bind variable> avg count current exists max min prior sql
stddev sum variance execute forall
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:191)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:944)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3482)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:3839)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1085)
..............................
由於本身的一個小小的失誤被這個異常折騰了幾天,問題就出在程序中調用存儲過程的sql語句上:
sql = "{ call insert_user_to_all('"+ user.getUser_id() +"','"+ user.getUsername() +"','"+ user.getPassword() +"','"+ user.getSex() +"','"+ user.getBirthday() +"',"+ user.getPersonal_id() +",'"+ user.getIsmarry() +"',"+ user.getTel() +",'"+ user.getEmail() +"','"+ user.getIsrent() +"','"+ user.getCarplace_id() +"') }";
原來本身沒有在"+ user.getUser_id() +"的兩邊加上單引號:‘’!當存入number類型字段時能夠不加‘’,可是當存入字符串是必須得加‘’,不然報錯!java