Oi pessoal,
Em SAP WebDynpro, base de dados Oracle, diz na documentação que tenho que pegar a conecção da base de dados assim:
javax.naming.Context ctx = new javax.naming.InitialContext();
avax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/SAPDB");
java.sql.Connection conn = ds.getConnection();Este código funciona, mas se tentar usar, Group By, Distinct, SubQuerys, retorna erros… mas se for um select simples funciona na boa.
Para resolver este probelma eu passei a usar o ojdbc driver:
oracle.jdbc.pool.OracleDataSource ods = new oracle.jdbc.pool.OracleDataSource();
ods.setURL(config.getStringEntry("oracle.datasource.url"));
ods.setUser(config.getStringEntry("oracle.datasource.user"));
ods.setPassword(config.getStringEntry("oracle.datasource.pass"));
java.sql.Connection conn = ods.getConnection();Com o OJDBC todos os comandos SQL funcionam 100%, mas a na documentação dis para eu usar a outra maneira, e aqui no projeto o cliente prefere que eu faça como na documentação, já fui no forum oficial e todos usam a primeira opção… como vou poder resolver isto alguém sabe?
Exemplo… esta query:
select CUSTOM "MODULO" from
   SAPEPTDB.WCR_WEBCONTENTSTAT  inner join
      SAPEPTDB.WCR_USERPAGEUSAGE 
        on (ID = HOURLY_ID or 
            ID = DAILY_ID or 
            ID = WEEKLY_ID or 
            ID = MONTHLY_ID or 
            ID = QUARTERLY_ID) 
group by CUSTOM order by CUSTOMCom OJDBC funciona bem, mas com Context.lookup retorna este erro:
The SQL statement 
"SELECT "CUSTOM" "MODULO" FROM 
"SAPEPTDB"."WCR_WEBCONTENTSTAT" INNER JOIN 
"SAPEPTDB"."WCR_USERPAGEUSAGE" ON "ID" = "HOURLY_ID" OR 
"ID" = "DAILY_ID" OR "ID" = "WEEKLY_ID" OR "ID" = 
"MONTHLY_ID" OR "ID" = "QUARTERLY_ID" GROUP BY "CUSTOM" 
ORDER BY "CUSTOM"" contains the semantics error[s]: ON 
conditions should only be concatenated with ANDValeu…
