]
Steven Hawkins updated TEIIDDES-1487:
-------------------------------------
Assignee: (was: Steven Hawkins)
Affects Version/s: 7.4
(was: 7.4.4)
Teiid is simply using the nameInSource property to form the source query and does not
attempt to detect when quotes are needed. I thought that we (working with Dan) had
previously modified the JDBC importer to always use identifier quoting (the dynamic vdb
importer works this way already).
Failure to access Oracle data source with column names enclosed in
double quotes
--------------------------------------------------------------------------------
Key: TEIIDDES-1487
URL:
https://issues.jboss.org/browse/TEIIDDES-1487
Project: Teiid Designer
Issue Type: Bug
Components: Teiid Integration
Affects Versions: 7.4
Environment: EDS 5.2.0
Reporter: Hisanobu Okuda
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
{code}
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;
{code}
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:-
{code}
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
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: