--1.声明定时任务
DECLAREjob NUMBER;
BIGIN
dbms_job.sumit(job, --任务ID,系统定义的'test_prcedure(19)',--调用存储过程?to_date('20240305 02:00','yyyymmdd hh24:mi') --任务开始时间'sysdate+1/(24*60)' --任务执行周期 [每分钟执行一次]
);
COMMIT;
END;--2.定义存储过程
CREATE OR REPLACE procedure test_prcedure(in_num number) IS
BEGINdbms_output_put_line(in_num) --打印输出19,当然它实际应该是一些列增删改操作
END
分支语句
循环语句
游标操作(类比集合)
java调用存储过程
package com.dj.springtest.demo;import java.sql.*;/*** User: ldj* Date: 2024/3/4* Time: 23:48* Description: java调用存储过程*/
public class CallProcedureDemo {public static void main(String[] args) throws Exception {Connection connection = null;CallableStatement callableStatement = null;try {//加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//通过驱动管理器获取连接对象String url = "jdbc:oracle:thin:@localhost:1521:xe";String username = "root";String password = "123456";connection = DriverManager.getConnection(url, username, password);//拼接sql脚本,调用存储过程(test_procedure)有1个入参,1个出参String sql = "{call test_procedure(?,?)}";callableStatement = connection.prepareCall(sql);//设置入参和出参callableStatement.setInt(1, 18);callableStatement.registerOutParameter(2, JDBCType.DOUBLE);//执行sqlcallableStatement.execute();//获取结果System.out.println(callableStatement.getDouble(2));} catch (Exception e) {e.printStackTrace();} finally {//关闭连接if (callableStatement != null) {callableStatement.close();}if (connection != null) {connection.close();}}}
}