どのように私は、エラーを回避するために、次のクエリを再設計することができますこのクエリをどのように再設計できますか?
String sqlQueryToMakeTable = "create table " + UserEmail +
"(" +
"NameOfThePhoto varchar(255)," +
"Caption varchar(255)" +
")";
// UserEmail is of type String
USEREMAILはフォーム[email protected]であり、私はクエリを実行すると、私はこれらのエラーを取得:
java.sql.SQLSyntaxErrorException: Lexical error at line 1, column 18. Encountered: "@" (64), after : "".
at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.Connection.prepareStatement(Unknown Source)
at com.sun.gjc.spi.base.ConnectionHolder.prepareStatement(ConnectionHolder.java:562)
at com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareCachedStatement(ConnectionWrapper40.java:255)
at com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareCachedStatement(ConnectionWrapper40.java:52)
at com.sun.gjc.spi.ManagedConnection.prepareCachedStatement(ManagedConnection.java:964)
.....
私は例外理由を理解しています。私は二重引用符で電子メールアドレスを配置してこのクエリを直接実行しますが、私はここで何をしますか?
EDIT私はテーブル名に@を使用できませんか?
なぜ地球上であなたは、ユーザーごとにテーブルをしたいですか? !?!? – dagnelies
テーブル名に「@」という文字が本当に必要ですか?なぜUserEmailからこの文字を削除しないのですか? – gefei