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 CUSTOM
Com 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 AND
Valeu…