美文网首页
oracle通过存储过程调用web接口

oracle通过存储过程调用web接口

作者: 御情守剑 | 来源:发表于2019-07-28 21:45 被阅读0次

    sql语句

    create or replace procedure Test(userName in varchar2,password in VARCHAR2,
                                                     flag out varchar2) is
      req      utl_http.req;
      resp     utl_http.resp;
      -------用户权限接口调用
      valueStr varchar2(1024);
    begin
      req := utl_http.begin_request('http://localhost:8080/test/test?userName='||userName||'&&password='||password||'');
      utl_http.set_header(req, 'User-Agent', 'Mozilla/4.0');
      resp := utl_http.get_response(req);
      utl_http.read_line(resp, valueStr, true);
      flag := valueStr;
      utl_http.end_response(resp);
    end Test;
    

    配置acl权限(oracle11及以上访问网络,账号需要acl权限)

    BEGIN
    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
    acl  => 'Test.xml',
    description  => 'Test',
    principal  => 'yqsj',
    is_grant  => TRUE,
    privilege  => 'connect');
    END;
    
    BEGIN
    DBMS_NETWORK_ACL_ADMIN.assign_acl (
        acl         => 'Test.xml',
        host        => 'localhost', ---SMTP服务器地址
        lower_port  => 25,
        upper_port  => 9090);
      COMMIT;
    END;
    

    java调用存储过程,以及接受结果

    Configuration cfg = new Configuration().configure();
    SessionFactory sessionFactory = cfg.buildSessionFactory();
            Session session = sessionFactory.openSession(); //获取hibernate会话
            try{
                CallableStatement statement = session.connection().prepareCall(
                        "{call Test(?,?,?)}");
                statement.setString("userName", userName);
                statement.setString("password", password);
                statement.registerOutParameter("flag", OracleTypes.VARCHAR);
                statement.executeUpdate();
                String keycode = statement.getString("flag");
                session.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
    

    相关文章

      网友评论

          本文标题:oracle通过存储过程调用web接口

          本文链接:https://www.haomeiwen.com/subject/pycmrctx.html