1

I'm getting an error when I use Alias inside my query in java..

19:34:26.852 java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
at com.tlc.common.DbWrapper.QueryDataRows(DbWrapper.java:327)
at com.tlc.sky.admin.modules.reports.m.WalletToDistributorReportCollection.hasRows(WalletToDistributorReportCollection.java:73)
at com.tlc.sky.admin.modules.reports.c.WalletToDistributorReportCommand.execute(WalletToDistributorReportCommand.java:46)
at com.tlc.sky.admin.modules.reports.main.test.main(test.java:19)
  ~U0VMRUNUIERFQ1JZUFQoQS5BTElBUywnc3VuZXY4Y2x0MTIzNDU2Nzg5MCcsQS5NU0lTRE4pIEFTIERJU1RSSUJVVE9SLCBCLlRJTUVTVEFNUCBBUyAnVFJBTlNBQ1RJT04gREFURScsICBCLlJFRkVSRU5DRUlEIEFTICdSRUZFUkVOQ0UgSUQnLCBBLkZJUlNUTkFNRSBBUyAnRklSU1QgTkFNRScsIEEuTEFTVE5BTUUgQVMgJ0xBU1QgTkFNRScsIEEuTVNJU0ROLCBCLkFNT1VOVCwgQi5ERVNUQkFMQU5DRUJFRk9SRSBBUyAnUFJFVklPVVMgQkFMQU5DRScsIEIuREVTVEJBTEFOQ0VBRlRFUiBBUyAnQ1VSUkVOVCBCQUxBTkNFJywgQi5PUklHQkFMQU5DRUFGVEVSIEFTIFdBTExFVCwgQi5SRU1BUktTIEZST00gREJTS1lNQy5UQkxUUkFOU0FDVElPTlMgQiBJTk5FUiBKT0lOIERCU0tZTUMuVEJMTU9CSUxFQUNDT1VOVElORk8gQSBPTiBBLk1TSVNETiA9IEIuVE9NU0lTRE4gV0hFUkUgQi5UWVBFID0gJ0FMTE9DJyBBTkQgQS5SRUZFUkVOQ0VBQ0NPVU5UID0gJzAnIEFORCAoQi5USU1FU1RBTVAgQkVUV0VFTiBUT19EQVRFKD8sJ1lZWVknKSBBTkQgVE9fREFURSg/LCdZWVlZJykpIE9SREVSIEJZIFRJTUVTVEFNUCBBU0M=

My query

String sql = "SELECT COLUMN1 AS 'ALIAS1', COLUMN2 AS 'ALIAS2' FROM TABLE1 WHERE CONDITION1 = CONDITION";
  or
String sql = "SELECT COLUMN1 AS " + "ALIAS1" + ", COLUMN2 AS " + "ALIAS2"  + " FROM TABLE1 WHERE CONDITION1 = CONDITION";

CAN SOMEONE PLEASE HELP ME.. I USED "' '" AND IT INDICATES ERROR ON THE COMPILE TIME OF THE JAVA..

I used Eclipse IDE.. and my database is Oracle..

2 Answers 2

2

Run it without the single quotes:

String sql = "SELECT COLUMN1 AS ALIAS1, COLUMN2 AS ALIAS2 FROM TABLE1 WHERE CONDITION1 = CONDITION";
Sign up to request clarification or add additional context in comments.

4 Comments

Though this would not work if he has spaces in the aliases.
ah, yes, you are right. For aliases with several words it will not work. However, for the alias1 and alias2 it will.
If he uses multi-word aliases with space characters in a java application, he's going to have more problems than merely quoting in the query.
It depends... He might only need the result to display on a report.
1

Try escaping the ":

String sql = "SELECT COLUMN1 as \"ALIAS1\", COLUMN2 as \"ALIAS2\" FROM TABLE1 WHERE CONDITION1 = CONDITION";

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.