Ste*_*hRT 4 java oracle jdbc oracle-sqldeveloper oracle12c
我希望有人能找到我的查询有什么问题,因为我看不到它的问题,而且 Oracle SQL Developer 似乎运行与我的 Java Swing 应用程序中的代码相同的查询就好了。
我在 SQL Developer 中的查询:
SELECT
ad.ID,ad.Script_Name,ad.Current_Status,
ad.Issues_found_during_run,ad.Testers,
ad.Run_Date,ad.Tools,u.fTag,u.role,
dbms_lob.substr(u.avatar)
FROM
allData ad
INNER JOIN
users u
ON
u.fTag = ad.lastUserWhoUpdated
GROUP BY
ad.ID,ad.Script_Name,ad.Current_Status,
ad.Issues_found_during_run,ad.Testers,
ad.Run_Date,ad.Tools,u.fTag,u.role,
dbms_lob.substr(u.avatar)
ORDER BY
ad.ID ASC;
Run Code Online (Sandbox Code Playgroud)
哪个运行完美并返回我期望的所需记录。
但是,我的 Java Swing 应用程序中的相同查询似乎不喜欢它,因为它给了我以下错误:
java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束。
我的 Java Swing 应用程序代码:
connectToDB();
String query =
"SELECT " +
"ad.ID," +
"ad.Script_Name," +
"ad.Current_Status," +
"ad.Issues_found_during_run," +
"ad.Testers," +
"ad.Run_Date," +
"ad.Tools," +
"u.fTag," +
"u.role," +
"dbms_lob.substr(u.avatar) " +
"FROM " +
"allData ad " +
"INNER JOIN " +
"users u " +
"ON " +
"u.fTag = ad.lastUserWhoUpdated " +
"GROUP BY " +
"ad.ID," +
"ad.Script_Name," +
"ad.Current_Status," +
"ad.Issues_found_during_run," +
"ad.Testers," +
"ad.Run_Date," +
"ad.Tools," +
"u.fTag," +
"u.role," +
"dbms_lob.substr(u.avatar) " +
"ORDER BY " +
"ad.ID;";
ResultSet rs = statement.executeQuery(query);
ResultSetMetaData metaData = rs.getMetaData();
etc..etc..
Run Code Online (Sandbox Code Playgroud)
我对这两个表的结构是:
SCRIPT_NAME VARCHAR2(100 BYTE)
CURRENT_STATUS VARCHAR2(50 BYTE)
ISSUES_FOUND_DURING_RUN VARCHAR2(150 BYTE)
TESTERS VARCHAR2(30 BYTE)
RUN_DATE DATE
TOOLS VARCHAR2(20 BYTE)
T_SUITE NUMBER(38,0)
NOE2 VARCHAR2(5 BYTE)
NOE3 VARCHAR2(5 BYTE)
ID NUMBER(38,0)
LASTUSERWHOUPDATED NUMBER
DATELASTMOD DATE
Run Code Online (Sandbox Code Playgroud)
FTAG NUMBER(38,0)
ROLE VARCHAR2(15 BYTE)
AVATAR CLOB
Run Code Online (Sandbox Code Playgroud)
那么,我可能会错过什么?
去掉ad.ID下面类似后面的分号。你不需要它
"ORDER BY " +
"ad.ID";
Run Code Online (Sandbox Code Playgroud)