@Override public ResultSet executeStoredProcedure(CallableStatement statement, List<Argument> preparedValues, Class<?> returnType) throws SQLException { ResultSet rs = super.executeStoredProcedure(statement, preparedValues, returnType); if (!oracleSuppliedDriver || rs != null) { return rs; } if (returnType == RefCursorType.class) { return (ResultSet)statement.getObject(1); } for (int i = 0; i < preparedValues.size(); i++) { Argument arg = preparedValues.get(i); if (arg.getType() == RefCursorType.class) { return (ResultSet)statement.getObject(i + (returnType == null?1:2)); } } return null; }
static String getQueryParameters(Call obj) throws EdmPrimitiveTypeException { StringBuilder sb = new StringBuilder(); final List<Argument> params = obj.getArguments(); if (params != null && params.size() != 0) { Argument param = null; for (int i = 0; i < params.size(); i++) { param = params.get(i); if (param.getDirection() == Direction.IN || param.getDirection() == Direction.INOUT) { if (i != 0) { sb.append("&"); //$NON-NLS-1$ } sb.append(WSUtil.httpURLEncode(param.getMetadataObject().getName())); sb.append(Tokens.EQ); sb.append(WSUtil.httpURLEncode(ODataTypeManager.convertToODataURIValue(param.getArgumentValue().getValue(), ODataTypeManager.odataType(param.getType()).getFullQualifiedName() .getFullQualifiedNameAsString()))); } } } return sb.toString(); }
Argument arg = (Argument)paramValue; value = ((Literal)arg.getExpression()).getValue(); paramType = arg.getType(); } else { Parameter param = (Parameter)paramValue;
@Override public List<?> getOutputParameterValues() throws TranslatorException { try { Call proc = (Call)this.command; List<Object> result = new ArrayList<Object>(); int paramIndex = 1; if (proc.getReturnType() != null) { if (proc.getReturnParameter() != null) { addParameterValue(result, paramIndex, proc.getReturnType()); } paramIndex++; } for (Argument parameter : proc.getArguments()) { switch (parameter.getDirection()) { case IN: paramIndex++; break; case INOUT: case OUT: addParameterValue(result, paramIndex++, parameter.getType()); break; } } return result; } catch (SQLException e) { throw new TranslatorException(JDBCPlugin.Event.TEIID11005, e); } }