Bug 183591 ResultSets opened during querying metadata are not closed - it can cause exception on Oracle
Build ID: 2.2.0.v20070329 Steps To Reproduce: 1.Create report with multiple stored procedures and oracle connection. 2.Generate report and check number of opened cursors on Oracle side. 3.If number of opened cursor exceeds Oracle limit, exception is thrown. More information: ResultSets opened in org.eclipse.birt.report.data.oda.jdbc.CallStatement - methods createSchemaList and getCallableParamMetaData are not closed.
data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/CallStatement.java
* DatabaseMetadata, else register output paremeter on statement's metadata.
	 * 
	 * @throws OdaException
	 */
	private void registerOutputParameter( ) throws OdaException
	{
		
		if ( parameterDefn != null )
		{
			for ( int i = 0; i < parameterDefn.getParameterCount( ); i++ )
			{
				if ( parameterDefn.getParameterMode( i ) == IParameterMetaData.parameterModeOut
						|| parameterDefn.getParameterMode( i ) == IParameterMetaData.parameterModeInOut )
				{
					registerOutParameter( i + 1, getParameterType( i ) );
				}
			}
		}
	}
	
	/*
	 * Added to deal with database-specific cases. for instance,
	 * Types.OTHER->REF CURSOR->Any(odi)->Types.CHAR(oda). In above scenarios,
	 * metaData will be fetched again to correct the parameterDataType in case
	 * they've been changed already. Note there would be some extra tradeoff
	 * even the paramDataType is recognizable to us as we just can't tell for
	 * sure on jdbc level
	 */
	private int getParameterType( int i ) throws OdaException
	{