-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
7.4
-
None
EDS is throwing an error when accessing Oracle data source with column names enclosed in double quotes. I am able to import the metadata, test through Datasource explorer but when i run the query against VDB, it is not interpreting correctly to send double-quotes to the column name in this case, causing below error.
For example,
1. create table and views as shown below in Oracle database
create table test(recno number, ref_no varchar2(4000)); create or replace view test_v as select recno as "Rec_Item_Number", ref_no as "bom_ref_no." from test;
2. Import test_v data source view into JBoss developer studio
3. deploy and run the query against TEST_V:-
Then, the following exception is thrown:-
2012-09-05 08:34:39,386 WARN [org.teiid.CONNECTOR] (Worker0_QueryProcessorQueue13) Connector worker process failed for atomic-request=Imx1VPWhia7G.6.0.0 org.teiid.translator.jdbc.JDBCExecutionException: Error Code:1747 Message:'ORA-01747: invalid user.table.column, table.column, or column specification ' error executing statement(s): [Prepared Values: [] SQL: SELECT c_0, c_1 FROM (SELECT g_0.Rec_Item_Number AS c_0, g_0.bom_ref_no. AS c_1 FROM "EII_CACHE"."TEST_V" g_0) WHERE ROWNUM <= 100] at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:90) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:276) at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:354) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:143) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:140) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.teiid.dqp.internal.process.DQPCore$FutureWork.run(DQPCore.java:120) at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:240) at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:122) at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:292) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.sql.SQLSyntaxErrorException: ORA-01747: invalid user.table.column, table.column, or column specification 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 org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342) at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:86) ... 13 more