Amigos, estou com um problema agora com recebimento de um DBMS_OUTPUT… Gostaria de algum exemplo para meu auxilio (já procurei aqui no GUJ e no Google e não encontrei para me auxiliar)
Eu criei (por dedução e por ver no Googl) este código:
private CallableStatement habilita_stmt;
private CallableStatement fecha_stmt;
private CallableStatement mostra_stmt;
public void executarQuery(String servico) throws Exception {
try {
conn = DBUtil.getConnectionLogApache();
habilita_stmt = conn.prepareCall("begin dbms_output.enable(:1); end;");
mostra_stmt = conn.prepareCall(Queries.obterDBMSCapacity("10","2011","WLI Relacionar", 1, 31, servico));
fecha_stmt = conn.prepareCall("begin dbms_output.disable; end;");
iniciarDBMS(2000);
mostra_stmt.execute();
rset = show_stmt.getResultSet();
while (rset.next()) {
System.out.println(rset.getString(1)+ " " + rset.getInt(2) + " ");
}
fecharDBMS();
}
private void fecharDBMS() throws SQLException {
fecha_stmt.executeUpdate();
}
private void iniciarDBMS(int size) throws SQLException {
habilita_stmt.setInt(1, size);
habilita_stmt.executeUpdate();
}
A Query que eu recebi é esta (só adaptei em um método):
public static String obterDBMSCapacity(String mes, String ano,
String amb, int Dso, int Lim, String servico) {
String dbmsCapacity =
("DECLARE " +
"Mes VARCHAR2(02) := "+mes+"; "+ //-- Mês com dois dígitos
"Ano VARCHAR2(04) := "+ano+"; "+ //-- Ano com 4 dígitos.
"Amb VARCHAR2(50) := "+amb+"; "+ //-- ESB, DSP, WLI URA, WLI Ativar, WLI Relacionar, WLI Infra.
"Dso NUMBER := "+Dso+"; "+ //-- dia inicial que se deseja
"Lim NUMBER := "+Lim+"; "+ //-- dia final do período
//-- Variáveis usadas pelo Script NÃO MEXER
"DTE DATE := To_Date(Lpad(Dso,2,'0') || '/' || Mes || '/' || Ano || '00','DD/MM/YYYY HH24'); "+
"Tte DATE := TRUNC(Dte); "+
"Datx VARCHAR2(20) := ''; "+
"Hitx NUMBER := 0; "+
"BEGIN "+
"DTE := DTE - 1; "+
"DSO := DSO - 1; "+
"LOOP "+
"DSO := DSO + 1; "+
"DTE := DTE + 1; "+
"EXIT "+
"WHEN Dso > Lim; "+
"TTE := TRUNC(DTE); "+
"SELECT Data, "+
"HITS "+
"INTO DATX, "+
"HITX "+
"FROM "+
"(SELECT ale.environment Ambiente, "+
"TO_CHAR(alh.time, 'DD/MM/YYYY HH24:MI') Data, "+
"COUNT(1) Hits "+
"FROM apache_log_env ale, "+
"apache_log_control alc, "+
"apache_logs_hist alh "+
"WHERE ale.logenvid = alc.logenvid "+
"AND Alc.Logcontrolid = Alh.Logcontrolid "+
"AND alh.data = TTE "+
"AND Ale.Environment = Amb "+
"AND alh.url_path = '"+servico+"' "+ //--Nome do Serviço entre aspas simples
"GROUP BY ale.environment, "+
"TO_CHAR(alh.time, 'DD/MM/YYYY HH24:MI') "+
"ORDER BY 3 DESC "+
") "+
"WHERE ROWNUM < 2; "+
"DBMS_OUTPUT.PUT_LINE(DATX || ';' || HITX); "+
//-- EXIT WHEN DSO > LIM;
"END LOOP; "+
"END; ");
return dbmsCapacity;
}