Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java spring boot jdbc模板执行oracel sql ddl statemenet后如何获得响应?_Java_Spring_Spring Boot_Spring Jdbc - Fatal编程技术网

使用java spring boot jdbc模板执行oracel sql ddl statemenet后如何获得响应?

使用java spring boot jdbc模板执行oracel sql ddl statemenet后如何获得响应?,java,spring,spring-boot,spring-jdbc,Java,Spring,Spring Boot,Spring Jdbc,我正在使用Spring启动应用程序。我想在执行所有ddl语句后得到响应。就像当我创建表时,然后是responsetable created,当我创建视图时,然后是responseview created,类似于函数、过程、触发器和其他所有ddl语句 在我的代码中,当异常发生时,然后响应,如删除函数BMS.factorial11到ORA-04043:对象factorial11不存在和删除表测试_table到ORA-00942:表或视图不存在 我想得到所有的响应,就像发生异常时一样。所以我的问题是,

我正在使用Spring启动应用程序。我想在执行所有ddl语句后得到响应。就像当我创建表时,然后是response
table created
,当我创建视图时,然后是response
view created
,类似于函数、过程、触发器和其他所有ddl语句

在我的代码中,当异常发生时,然后响应,如
删除函数BMS.factorial11
ORA-04043:对象factorial11不存在
删除表测试_table
ORA-00942:表或视图不存在

我想得到所有的响应,就像发生异常时一样。所以我的问题是,在SpringBoot应用程序中是否可能

应用程序属性

spring.datasource.url=url
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver
Controller.java

@PostMapping("/run-script")
    public String runScript(@RequestBody String sc) {
        try {
            db.execute(sc);
        } catch (Exception e) {
            return n;
        }

将DDL脚本包装在存储过程或smth中,将输出记录在临时表或smth中,并将其定义为存储过程的返回值。然后可以将其作为结果集返回,并使用RowMapper或smth对其进行解析。总而言之,这是一个糟糕的方法。您应该将DDL放在应用程序之外,并使用Oracle的专用工具运行它。SQL injection:it's free real estate:)