@Test public void testExecNamedParams() { StoredProcedure proc = new StoredProcedure(); proc.setDisplayNamedParameters(true); proc.setProcedureName("myproc"); //$NON-NLS-1$ SPParameter param = new SPParameter(1, new Reference(0)); param.setName("p1");//$NON-NLS-1$ proc.setParameter(param); SPParameter param2 = new SPParameter(2, new Reference(0)); param2.setName("p2");//$NON-NLS-1$ proc.setParameter(param2); helpTest(proc, "EXEC myproc(p1 => ?, p2 => ?)"); //$NON-NLS-1$ }
/** * Test when a parameter's name is a reserved word. * (Note: parameters should always have short names, not * multiple period-delimited name components.) * * @since 4.3 */ @Test public void testExecNamedParamsReservedWord() { StoredProcedure proc = new StoredProcedure(); proc.setDisplayNamedParameters(true); proc.setProcedureName("myproc"); //$NON-NLS-1$ SPParameter param = new SPParameter(1, new Reference(0)); param.setName("in");//$NON-NLS-1$ proc.setParameter(param); SPParameter param2 = new SPParameter(2, new Reference(0)); param2.setName("in2");//$NON-NLS-1$ proc.setParameter(param2); helpTest(proc, "EXEC myproc(\"in\" => ?, in2 => ?)"); //$NON-NLS-1$ }
@Test public void testExecNamedParam() { StoredProcedure proc = new StoredProcedure(); proc.setDisplayNamedParameters(true); proc.setProcedureName("myproc"); //$NON-NLS-1$ SPParameter param = new SPParameter(1, new Reference(0)); param.setName("p1");//$NON-NLS-1$ proc.setParameter(param); helpTest(proc, "EXEC myproc(p1 => ?)"); //$NON-NLS-1$ }
@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 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 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$ }