void convertToParameters(List<Expression> values, StoredProcedure storedProcedure, int paramIndex) { for (Expression value : values) { SPParameter parameter = new SPParameter(paramIndex++, value); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); } }
void convertToParameters(List<Expression> values, StoredProcedure storedProcedure, int paramIndex) { for (Expression value : values) { SPParameter parameter = new SPParameter(paramIndex++, value); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); } }
void convertToParameters(List<Expression> values, StoredProcedure storedProcedure, int paramIndex) { for (Expression value : values) { SPParameter parameter = new SPParameter(paramIndex++, value); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); } }
/** * Constructor used when constructing a parameter from metadata. * In this case we specify the description of the parameter but * no notion of what it is being filled with. * * @param index Parameter index * @param parameterType Type of parameter based on class constant - IN, OUT, etc * @param name Full name of parameter (including proc name) */ public SPParameter(int index, int parameterType, String name) { setIndex(index); setParameterType(parameterType); this.parameterSymbol = new ElementSymbol(name); }
/** * Constructor used when constructing a parameter from metadata. * In this case we specify the description of the parameter but * no notion of what it is being filled with. * * @param index Parameter index * @param parameterType Type of parameter based on class constant - IN, OUT, etc * @param name Full name of parameter (including proc name) */ public SPParameter(int index, int parameterType, String name) { setIndex(index); setParameterType(parameterType); this.parameterSymbol = new ElementSymbol(name); }
/** * Constructor used when constructing a parameter from metadata. * In this case we specify the description of the parameter but * no notion of what it is being filled with. * * @param index Parameter index * @param parameterType Type of parameter based on class constant - IN, OUT, etc * @param name Full name of parameter (including proc name) */ public SPParameter(int index, int parameterType, String name) { setIndex(index); setParameterType(parameterType); this.parameterSymbol = new ElementSymbol(name); }
@Test public void testExecInputOutputParam() { StoredProcedure proc = new StoredProcedure(); proc.setProcedureName("myproc"); //$NON-NLS-1$ SPParameter param1 = new SPParameter(1, new Constant(new Integer(5))); param1.setParameterType(ParameterInfo.IN); proc.setParameter(param1); SPParameter param2 = new SPParameter(2, ParameterInfo.OUT, "x"); //$NON-NLS-1$ proc.setParameter(param2); helpTest(proc, "EXEC myproc(5)"); //$NON-NLS-1$ }
@Test public void testExecOutputInputParam() { StoredProcedure proc = new StoredProcedure(); proc.setProcedureName("myproc"); //$NON-NLS-1$ SPParameter param2 = new SPParameter(2, ParameterInfo.OUT, "x"); //$NON-NLS-1$ proc.setParameter(param2); SPParameter param1 = new SPParameter(1, new Constant(new Integer(5))); param1.setParameterType(ParameterInfo.IN); proc.setParameter(param1); helpTest(proc, "EXEC myproc(5)"); //$NON-NLS-1$ }
parameter = new SPParameter(parameterIndex++, value); parameter.setName(name); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); parameter = null; parameter = new SPParameter(parameterIndex++, value); parameter.setName(name); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); parameter = null;
parameter = new SPParameter(parameterIndex++, value); parameter.setName(name); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); parameter = null; parameter = new SPParameter(parameterIndex++, value); parameter.setName(name); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); parameter = null;
parameter = new SPParameter(parameterIndex++, value); parameter.setName(name); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); parameter = null; parameter = new SPParameter(parameterIndex++, value); parameter.setName(name); parameter.setParameterType(SPParameter.IN); storedProcedure.setParameter(parameter); parameter = null;
@Test public void testCase3281NamedVariables() { StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setDisplayNamedParameters(true); storedQuery.setProcedureName("proc1"); //$NON-NLS-1$ SPParameter param1 = new SPParameter(1, new Constant("paramValue1")); //$NON-NLS-1$ param1.setName("param1"); //$NON-NLS-1$ param1.setParameterType(ParameterInfo.IN); storedQuery.setParameter(param1); SPParameter param2 = new SPParameter(2, new Constant("paramValue2")); //$NON-NLS-1$ param2.setName("param2"); //$NON-NLS-1$ param2.setParameterType(ParameterInfo.IN); storedQuery.setParameter(param2); helpTest("Exec proc1(param1 = 'paramValue1', param2 = 'paramValue2')", "EXEC proc1(param1 => 'paramValue1', param2 => 'paramValue2')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ helpTest("execute proc1(param1 = 'paramValue1', param2 = 'paramValue2')", "EXEC proc1(param1 => 'paramValue1', param2 => 'paramValue2')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testCacheHintCallableStatement() { String sql = "/*+ cache */ { ? = call proc() }"; //$NON-NLS-1$ StoredProcedure sp = new StoredProcedure(); SPParameter param = new SPParameter(1, null); param.setParameterType(SPParameter.RETURN_VALUE); sp.setParameter(param); sp.setProcedureName("proc"); sp.setCallableStatement(true); CacheHint hint = new CacheHint(); sp.setCacheHint(hint); TestParser.helpTest(sql, "/*+ cache */ ? = EXEC proc()", sp); //$NON-NLS-1$ }
/** Test what happens if the name of a parameter is a reserved word. It must be quoted (double-ticks). */ @Test public void testCase3281NamedVariablesReservedWords() { StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setDisplayNamedParameters(true); storedQuery.setProcedureName("proc1"); //$NON-NLS-1$ SPParameter param1 = new SPParameter(1, new Constant("paramValue1")); //$NON-NLS-1$ param1.setName("in"); //$NON-NLS-1$ //<---RESERVED WORD param1.setParameterType(ParameterInfo.IN); storedQuery.setParameter(param1); SPParameter param2 = new SPParameter(2, new Constant("paramValue2")); //$NON-NLS-1$ param2.setName("in2"); //$NON-NLS-1$ param2.setParameterType(ParameterInfo.IN); storedQuery.setParameter(param2); helpTest("Exec proc1(\"in\" = 'paramValue1', in2 = 'paramValue2')", "EXEC proc1(\"in\" => 'paramValue1', in2 => 'paramValue2')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ helpTest("execute proc1(\"in\" = 'paramValue1', in2 = 'paramValue2')", "EXEC proc1(\"in\" => 'paramValue1', in2 => 'paramValue2')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testStoredQuery(){ StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setProcedureName("proc1"); //$NON-NLS-1$ SPParameter parameter = new SPParameter(1, new Constant("param1")); //$NON-NLS-1$ parameter.setParameterType(ParameterInfo.IN); storedQuery.setParameter(parameter); helpTest("Exec proc1('param1')", "EXEC proc1('param1')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ helpTest("execute proc1('param1')", "EXEC proc1('param1')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testVariablesInExec(){ StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setProcedureName("proc1"); //$NON-NLS-1$ SPParameter parameter = new SPParameter(1, new ElementSymbol("param1")); //$NON-NLS-1$ parameter.setParameterType(ParameterInfo.IN); storedQuery.setParameter(parameter); helpTest("Exec proc1(param1)", "EXEC proc1(param1)", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ helpTest("execute proc1(param1)", "EXEC proc1(param1)", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testCase3281NamedVariable() { StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setDisplayNamedParameters(true); storedQuery.setProcedureName("proc1"); //$NON-NLS-1$ SPParameter parameter = new SPParameter(1, new Constant("paramValue1")); //$NON-NLS-1$ parameter.setName("param1"); //$NON-NLS-1$ parameter.setParameterType(ParameterInfo.IN); storedQuery.setParameter(parameter); helpTest("Exec proc1(param1 = 'paramValue1')", "EXEC proc1(param1 => 'paramValue1')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ helpTest("execute proc1(param1 = 'paramValue1')", "EXEC proc1(param1 => 'paramValue1')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testCase3281QuotedNamedVariableFails2() { StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setProcedureName("proc1"); //$NON-NLS-1$ SPParameter param1 = new SPParameter(1, new CompareCriteria(new Constant("a"), CompareCriteria.EQ, new Constant("b"))); //$NON-NLS-1$ param1.setParameterType(ParameterInfo.IN); storedQuery.setParameter(param1); helpTest("Exec proc1('a' = 'b')", "EXEC proc1(('a' = 'b'))", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ }