package my.test.command.dml; import my.test.TestBase; //可以测试下面4个类: //org.h2.engine.Procedure //org.h2.command.ddl.PrepareProcedure //org.h2.command.dml.ExecuteProcedure //org.h2.command.ddl.DeallocateProcedure public class ExecuteProcedureTest extends TestBase { public static void main(String[] args) throws Exception { new ExecuteProcedureTest().start(); } @Override public void init() throws Exception { // prop.setProperty("TRACE_LEVEL_SYSTEM_OUT", "2"); } @Override public void startInternal() throws Exception { executeUpdate("drop table IF EXISTS ExecuteProcedureTest"); executeUpdate("create table IF NOT EXISTS ExecuteProcedureTest(id int, name varchar(500), b boolean)"); executeUpdate("CREATE INDEX IF NOT EXISTS ExecuteProcedureTestIndex ON ExecuteProcedureTest(name)"); executeUpdate("insert into ExecuteProcedureTest(id, name, b) values(1, 'a1', true)"); executeUpdate("insert into ExecuteProcedureTest(id, name, b) values(1, 'b1', true)"); executeUpdate("insert into ExecuteProcedureTest(id, name, b) values(2, 'a2', false)"); executeUpdate("insert into ExecuteProcedureTest(id, name, b) values(2, 'b2', true)"); executeUpdate("insert into ExecuteProcedureTest(id, name, b) values(3, 'a3', false)"); executeUpdate("insert into ExecuteProcedureTest(id, name, b) values(3, 'b3', true)"); sql = "PREPARE mytest (int, varchar2, boolean) AS insert into ExecuteProcedureTest(id, name, b) values(?, ?, ?)"; executeUpdate(sql); sql = "EXECUTE mytest(4, 'b4', true)"; executeUpdate(sql); sql = "select * from ExecuteProcedureTest"; executeQuery(); executeUpdate("DEALLOCATE PLAN mytest"); } }