精华内容
下载资源
问答
  • Oracle 程序包里 直接调用 存储过程

    千次阅读 2017-11-07 13:11:33
    创建一个包 test1 create package test1 is ...创建包的主体 test1,里面有个存储过程 t1,还有一个调用 t1 create or REPLACE package body test1 is PROCEDURE t1 is begin DBMS_OUTPUT.

    创建一个包 test1


    create or replace package  test1 
    is
        PROCEDURE t1;
        function t2 return number;
    end test1;

    创建包的主体 test1,里面有个存储过程 t1,还有一个调用 t1

    create or REPLACE package body test1 
    is
        PROCEDURE t1 is
        begin
        DBMS_OUTPUT.PUT_LINE(sysdate);
        end;
        
        function t2 return number is
        begin
        return 1;
        end;
        
        begin
        TEST1.T1;
    end test1;

    执行方法

    DECLARE
    begin
    TEST1.T1;
    end;

    首次执行,会输出两次



    当我们再次执行时,只输出了一次。



    当每个连接的新用户,执行存储过程里任意一个存储过程 或者 函数,包里的调用都会执行。


    展开全文
  • @NamedNativeQueries( { @NamedNativeQuery( name = "FixedFeeOrderValidCalculate", query = "insert into kh.tb_cust_tdyw" +
    @NamedNativeQueries(
            {
                    @NamedNativeQuery(
                            name = "FixedFeeOrderValidCalculate",
                            query = "insert into kh.tb_cust_tdyw" +
                                    " (month,cust_no,user_id,broker_account,index_type,index_value,trade_date)" +
                                    " select ?1 ,cr.customer_no ,cr.belong_userid ,cr.broker_account,?2,1,cr.rels_begin" +
                                    "  from kh.tb_yxkh_cust_rel cr" +
                                    " inner join meso.tb_customer cust on cust.customer_no = cr.customer_no" +
                                    " where cr.rels_begin between ?3 || '01' and ?4 || '31' " +
                                    " and cust.open_date between ?5 || '01' and ?6 || '31'"
                    ),
                    @NamedNativeQuery(
                            name = "RatioFeeOrderValidCalculate",
                            query = "insert into kh.tb_cust_tdyw" +
                                    "      (month,cust_no,user_id,broker_account,index_type,index_value,trade_date)" +
                                    "select t.month as month,t.cust_no,t.user_id,t.broker_account,?1," +
                                    "  sum(nvl((select case " +
                                    "    when not exists (select i.item_value from KH.TB_SDEPT_INDEX i " +
                                    "    where i.branch_code = us.dept_id and i.item_id = ?2 and i.version = '2016') then " +
                                    "    (select i.item_value from KH.TB_SDEPT_INDEX i " +
                                    "    where i.branch_code = '9999' and i.item_id = ?3 and i.version = '2016') " +
                                    "  else (select i.item_value from KH.TB_SDEPT_INDEX i" +
                                    "   where i.branch_code = us.dept_id and i.item_id = ?4 and i.version = '2016') end" +
                                    "  from dual) * nvl(t.index_value, 0), 0)),'' " +
                                    " from KH.TB_CUST_TDYW t inner join KH.TB_USER_SNAP us" +
                                    " on us.user_id = t.user_id and us.trademonth = ?5" +
                                    " where t.month = ?6 and t.index_type = ?7" +
                                    " group by t.month, t.cust_no, t.user_id, t.broker_account"
                    ),
    
    
    
     @NamedNativeQuery(
                            name = "FixedFeeOrderValidCalculate",
                            query =
    
     "      select sp.trademonth, " +
                                    "             sp.branch_code, " +
                                    "             sp.auth_id, " +
                                    "             sp.cust_no, " +
                                    "             sp.sorder_id, " +
                                    "             sp.pay_way, " +
                                    "             sp.price_money, " +
                                    "             sp.service_rate, " +
                                    "             sp.prod_no, " +
                                    "             sp.trade_day, " +
                                    "             sp.user_id, " +
                                    "             sp.begin_date, " +
                                    "             sp.end_date, " +
                                    "             nvl(decode(sp.charg_range, 0, am.avg_net_ofs_assets, 1, am.total_avg_asset), 0), " +
                                    "             '1', " +
                                    "             case " +
                                    "               when num > 1 then  " +
                                    "                round((case " +
                                    "                        when tmp1.totsum / 3000 > 3 then " +
                                    "                         sp.price_money / tmp1.totsum * 3 " +
                                    "                        else " +
                                    "                         sp.price_money / 3000 " +
                                    "                      end), 2) " +
                                    "               else " +
                                    "                round((case " +
                                    "                        when sp.price_money / 3000 > 3 then " +
                                    "                         3 " +
                                    "                        else " +
                                    "                         sp.price_money / 3000 " +
                                    "                      end), 2) " +
                                    "             end, " +
                                    "             sp.charg_range, " +
                                    "             '1', " +
                                    "             sysdate, " +
                                    "             sysdate, " +
                                    "             '1', " +
                                    "             null, " +
                                    "             'B' " +
                                    "        from kh.tb_sproduct_sale sp " +
                                    "       inner join (select sp.auth_id auth_id, " +
                                    "                          sp.user_id user_id, " +
                                    "                          sum(sp.price_money) totsum, " +
                                    "                          count(1) as num " +
                                    "                     from kh.tb_sproduct_sale sp " +
                                    "                    where sp.pay_way = ?1 " +
                                    "                      and sp.pay_status = ?2 " +
                                    "                      and sp.del_flag = ?3 " +
                                    "                      and sp.trademonth = ?4 " +
                                    "                    group by sp.auth_id, sp.user_id) tmp1 " +
                                    "          on tmp1.auth_id = sp.auth_id " +
                                    "         and sp.user_id = tmp1.user_id " +
                                    "        left join xc.tb_mt_cust_asset_gather am " +
                                    "          on am.customer_no = sp.cust_no " +
                                    "         and am.trademonth = ?4 " +
                                    "       where sp.pay_way = ?1  " +
                                    "         and sp.pay_status = ?2 " +
                                    "         and sp.del_flag = ?3 " +
                                    "         and sp.trademonth = ?4"
    resultSetMapping = "returnorderValidCalc"
    ),
    
    @SqlResultSetMappings(
            {
                    @SqlResultSetMapping(
                            name = "returnorderValidCalc",
                            entities = {},
                            columns = {
                                    @ColumnResult(name = "tradeMonth"),
                                    @ColumnResult(name = "branchCode"),
                                    @ColumnResult(name = "authID"),
                                    @ColumnResult(name = "custNO"),
                                    @ColumnResult(name = "orderID"),
                                    @ColumnResult(name = "signType"),
                                    @ColumnResult(name = "tollSum"),
                                    @ColumnResult(name = "serviceFarex"),
                                    @ColumnResult(name = "prodNO"),
                                    @ColumnResult(name = "tradeDate"),
                                    @ColumnResult(name = "userID"),
                                    @ColumnResult(name = "startDate"),
                                    @ColumnResult(name = "endDate"),
                                    @ColumnResult(name = "asset"),
                                    @ColumnResult(name = "tradeType"),
                                    @ColumnResult(name = "validNum"),
                                    @ColumnResult(name = "chargRange"),
                                    @ColumnResult(name = "createBy"),
                                    @ColumnResult(name = "createDT"),
                                    @ColumnResult(name = "updateDT"),
                                    @ColumnResult(name = "updateBy"),
                                    @ColumnResult(name = "deleteBy"),
                                    @ColumnResult(name = "actByType"),
    
    
                            }
                    )
            }
    )
    
        }
    
    )

    在entity的实体类的前面用 @NamedNativeQuery注解定义一整条存储过程的sql。

    对于select型的sql语句 执行完后,select出的是一个实体表中的某几列。如果没有或者不想定义临时的entity去接收查询结果时, 可以用@SqlResultSetMappings 注解 定义几个列去接收select的查询结果

    二者通过returnorderValidCalc 连接。

    对用注解定义好的存储过程,用一个EntityManagerTransaction类去执行这些存储过程。

    package com.foundersc.crm.brokerage.util;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Query;
    import java.util.List;
    
    /**
     * 获得支持事务操作的entityManager实体
     *
     * Created by zhongxuhui on 16/9/8.
     */
    public class EntityManagerTransaction {
    
        private EntityManager entityManager;
        private EntityManagerFactory entityManagerFactory;
    
        public EntityManagerTransaction() {
            String config = "classpath*:spring/spring-jpa.xml";
            ApplicationContext ctx = new ClassPathXmlApplicationContext(config);
            entityManagerFactory = ctx.getBean(EntityManagerFactory.class);
            entityManager = entityManagerFactory.createEntityManager();
        }
    
        public int update (String methodName, String[] params) {
            entityManager.getTransaction().begin();
            Query query = entityManager.createNamedQuery(methodName);
            for (int i = 0; i < params.length; i++) {
                query.setParameter(i + 1, params[i]);
            }
            int result = query.executeUpdate();
            entityManager.getTransaction().commit();
            close();
            return result;
        }
    
        public List<Object[]> query(String methodName, String[] params) {
    
            Query query = entityManager.createNamedQuery(methodName);
            for (int i = 0; i < params.length; i++) {
                query.setParameter(i + 1, params[i]);
            }
            List<Object[]> list = query.getResultList();
            entityManager.close();
            return list;
        }
    
        private void close() {
            entityManager.close();
            entityManagerFactory.close();
        }
    }
    

    在 ServiceRepository 里面实例化一个EntityManagerTransaction类
    调用其执行sql的方法:

    private static EntityManagerTransaction entityManagerTransaction = new EntityManagerTransaction();
    
    
    public List getRequestList(String methodName, String[] params) {
            return  entityManagerTransaction.query(methodName,params);
           }
    
          public int SaveOrUpdateFromSelect(String methodName, String[] params){
              int result= entityManagerTransaction.update(methodName,params);
              if (0==result){
                  log.info("no lines had been affected!");
              }
              else {
                  log.info(result+" lines has benn affected!");
              }
              return result;
          }

    然后在相应的serviceImpl里根据存储过程的名称调用即可:

    public void FixedFeeOrderValidCalculate(String tradeMonth){
            String[] params = new String[4];
            params[0] = "1" ;//固定费用客户
            params[1] = "2" ;//已支付的
            params[2] = "0" ;//状态正常
            params[3] = tradeMonth;
    
            int result=serviceProductOrderValidNumRepository.SaveOrUpdateFromSelect("FixedFeeOrderValidCalculate",params);
     //FixedFeeOrderValidCalculate 是在@NamedNativeQuery注解里定义好的存储过程的名称
        }
    
    public void RatioFeeOrderValidCalculate(String tradeMonth){
            String[] params = new String[4];
            params[0] = "2" ;//固定费用客户
            params[1] = "2" ;//已支付的
            params[2] = "0" ;//状态正常
            params[3] = tradeMonth;
    
            int result=serviceProductOrderValidNumRepository.SaveOrUpdateFromSelect("RatioFeeOrderValidCalculate",params);
    
        }//RatioFeeOrderValidCalculate 是entity前的注解里定义好的存储过程的sql
    
    
    展开全文
  • SpringBoot调用存储过程

    千次阅读 2020-09-01 20:39:23
    程序中需要直接调用存储过程的场景 第一种:返回带参数的存储过程 第二种:返回结果集 第三种:第一种+第二种(不讨论) 数据库环境准备 数据库:MySQL 创建表及数据 CREATE TABLE `order` ( `uuid` varchar(32...

    程序中需要直接调用存储过程的场景

    • 第一种:调用带输入输出参数的存储过程
    • 第二种:调用存储过程返回结果集
    • 第三种:第一种+第二种(不讨论)

    数据库环境准备

    • 数据库:MySQL
    • 创建表及初始化数据表
    CREATE TABLE `order`  (
      `uuid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      `number` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      PRIMARY KEY (`uuid`) USING BTREE
    )INSERT INTO `order` VALUES ('d14f8eec-ec1a-11ea-98de-00ffc575', '20200901000001', '单据1', NULL);
    INSERT INTO `order` VALUES ('d14f8eec-ec1a-11ea-98de-1234567', '20200901000003', '单据3', NULL);
    INSERT INTO `order` VALUES ('d14f8eec-ec1a-11ea-98de-sdfafdd', '20200901000002', '单据2', NULL);
    
    • 创建存储过程
    CREATE PROCEDURE Get_Order_By_Uuid(
    IN piUuid varchar(32),
    OUT poNumber varchar(32),
    OUT poName varchar(255),
    OUT poErrMsg varchar(255)
    ) 
    BEGIN
    	DECLARE notfound INT DEFAULT 0;    #定义一个辅助变量用于判断
    	DECLARE cur1 CURSOR FOR SELECT number,name FROM iponkan_dbcp.order where uuid = piUuid;
    	DECLARE CONTINUE HANDLER FOR NOT FOUND SET notfound = 1;
    
    	OPEN cur1;
    	FETCH cur1 INTO poNumber,poName;
    
    	if notfound = 1 then
    		set poErrMsg = 'uuid='+ piUuid +'的单据信息不存在';
      end if;
    
    	CLOSE cur1;
    	
    END;
    
    CREATE PROCEDURE Get_ALL_Order()
    BEGIN
    	SELECT number,name FROM iponkan_dbcp.order;
    END;
    

    SpringBoot程序调用

    情景一:调用带有输入输出参数的存储过程

    
    /**
     * 调用存储过程返回参数-执行器
     * 
     * @author dongtangqiang
     */
    @Component
    public class ProcedureReturnParametersExecutor {
    
      @Autowired
      private JdbcTemplate jdbcTemplate;
      @Autowired
      private TransactionTemplate template;
    
      public boolean save() {
        String insertSql = "INSERT INTO `order`(`uuid`, `number`, `name`, `type`) VALUES ('d14f8eec-ec1a-11ea-98de-1234567', '20200901000003', '单据3', NULL)";
        return jdbcTemplate.update(insertSql) > 0;
      }
    
      public Order getByUuid(String uuid) {
        ProcedureReturnParametersTransactionCallback callback = new ProcedureReturnParametersTransactionCallback(
            uuid);
        return template.execute(callback);
      }
    
      class ProcedureReturnParametersTransactionCallback implements TransactionCallback<Order> {
        private String uuid;
    
        public ProcedureReturnParametersTransactionCallback(String uuid) {
          super();
          this.uuid = uuid;
        }
    
        @Override
        public Order doInTransaction(TransactionStatus transactionStatus) {
          return jdbcTemplate.execute(new CallableStatementCreator() {
    
            @Override
            public CallableStatement createCallableStatement(Connection con) throws SQLException {
              String procedure = "{call Get_Order_By_Uuid(?,?,?,?)}";
              CallableStatement cs = con.prepareCall(procedure);
              cs.setString(1, uuid);
              cs.registerOutParameter(2, java.sql.Types.VARCHAR);
              cs.registerOutParameter(3, java.sql.Types.VARCHAR);
              cs.registerOutParameter(4, java.sql.Types.VARCHAR);
              return cs;
            }
    
          }, new CallableStatementCallback<Order>() {
            @Override
            public Order doInCallableStatement(CallableStatement cs)
                throws SQLException, DataAccessException {
              cs.execute();
              String number = cs.getString(2);
              String name = cs.getString(3);
              String msg = cs.getString(4);
              if (msg != null) {
                throw new RuntimeException(msg);
              }
    
              Order order = new Order();
              order.setNumber(number);
              order.setName(name);
    
              return order;
            }
          });
        }
      }
    
    }
    

    情景二:调用返回结果集合的存储过程

    /**
     * 调用存储过程返回结果集-执行器
     * 
     * @author dongtangqiang
     */
    @Component
    public class ProcedureReturnListExecutor {
      @Autowired
      private JdbcTemplate jdbcTemplate;
      @Autowired
      private TransactionTemplate template;
    
      public List<Order> getAll() {
        ProcedureReturnListTransactionCallback callback = new ProcedureReturnListTransactionCallback();
        return template.execute(callback);
      }
    
      class ProcedureReturnListTransactionCallback implements TransactionCallback<List<Order>> {
    
        @Override
        public List<Order> doInTransaction(TransactionStatus transactionStatus) {
          return jdbcTemplate.execute(new CallableStatementCreator() {
    
            @Override
            public CallableStatement createCallableStatement(Connection con) throws SQLException {
              String procedure = "{call Get_ALL_Order()}";
              CallableStatement cs = con.prepareCall(procedure);
              return cs;
            }
    
          }, new CallableStatementCallback<List<Order>>() {
            @Override
            public List<Order> doInCallableStatement(CallableStatement cs)
                throws SQLException, DataAccessException {
              ResultSet rs = cs.executeQuery();
    
              List<Order> list = new ArrayList<>();
              while (rs.next()) {
                String number = rs.getString(1);
                String name = rs.getString(2);
    
                Order order = new Order();
                order.setNumber(number);
                order.setName(name);
                list.add(order);
              }
    
              return list;
            }
          });
        }
      }
    }
    
    

    测试

    • 结果:达到预期
    
    /**
     * @author dongtangqiang
     */
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest
    public class TestProcedure {
    
      @Autowired
      private ProcedureReturnParametersExecutor procedure1;
      @Autowired
      private ProcedureReturnListExecutor procedure2;
    
      @Test
      public void test() {
        procedure1.save();
      }
    
      @Test
      public void testGetByUuid() {
        Order order = procedure1.getByUuid("d14f8eec-ec1a-11ea-98de-1234567");
        assertNotNull(order);
        assertEquals(order.getNumber(), "20200901000003");
      }
    
      @Test
      public void testGetAll() {
        List<Order> orderList = procedure2.getAll();
        assertEquals(3, orderList.size());
      }
    
    }
    
    

    完整代码

    Github::iponkan-dbcp

    展开全文
  • thinkphp调用存储过程

    千次阅读 2016-09-07 18:17:19
    thinkphp貌似不能直接调用存储过程,要用原生的方法。 代码如下:$userInfo_proc = "call proc_get_userinfo_details(".$data['userid'].",''); ";//传了个参数 $res = mysql_query($userInfo_proc);//执行存储过程...

    thinkphp貌似不能直接调用存储过程,要用原生的方法。
    代码如下:

    $userInfo_proc = "call proc_get_userinfo_details(".$data['userid'].",''); ";//传了个参数
    $res = mysql_query($userInfo_proc);//执行存储过程
    $res = mysql_fetch_assoc($res);
    展开全文
  • .net core EF Core 调用存储过程

    千次阅读 2019-05-07 00:04:00
    .net core EF Core 调用存储过程 ...我们知道,EF Core 是不支持直接调用存储过程的,那它又提供了什么样的方式去执行存储过程呢?有如下方法: 1、FromSql,官方文档 DbSet<TEntity>.FromSql() 2、执行SQl命...
  • C#如何调用存储过程

    千次阅读 2012-07-20 13:27:54
     相对于直接使用SQL语句,在应用程序中直接调用存储过程有以下好处:  (1)减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,...
  • 一 .在数据库中创建存储过程: 1在数据库中根据表建立存储过程(记住存储过程的名字【你自己建的】)后面调用的时候直接call ...调用存储过程: dao中:public Double findSalEname(String name); daoimpl实现中:
  • [FineReport]调用存储过程

    千次阅读 2016-12-19 13:49:32
    有两种调用存储过程方法:一是在数据库数据集处调用,二是直接用存储过程数据集进行调用。在数据库数据集处调用,即在数据库查询中,添加语句有两种方式 (1) call 存储过程名 {call username.package.procedure...
  • JPA 调用存储过程

    千次阅读 2017-01-17 21:57:50
    JPA 调用存储过程   要调用存储过程,我们可以通过EntityManager对象的createNativeQuery()方法执行SQL 语句(注意:这里说的是SQL语句,不是HPQL), 调用存储过程的SQL格式如下: {call 存储过程名称(参数...
  • 存储过程是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次调用编译后,再次调用不需要编译。用户通过指定存储过程的名字并给出参数 (如果该存储过程带有参数) 来执行它 , 存储过程是数据库中的一个...
  • Sqoop调用存储过程

    千次阅读 2016-08-16 23:51:34
    Sqoop 调用存储过程小编这几天一直在尝试用sqoop直接调用oracle里面的存储过程,玩了2天都没有搞定,一直尝试用 export里面的 call命令去调用存储过程,我需要实现的就是在同步数据之前先将oracle里面这张表的数据清空,...
  • 一、存 储过程调用标量值函数 先建一个标量值函数,如 CREATE FUNCTION [dbo].[F_Num] ( @a nvarchar(50) ) RETURNS nvarchar(50) AS BEGIN declare @m nvarchar(50) ...在存储过程中可以直接如下调用: s
  • ADO NET调用存储过程 过程比较全

    千次阅读 2018-11-12 11:54:18
    ADO NET调用存储过程 过程比较全
  • Kettle 调用存储过程

    万次阅读 2017-04-11 11:24:53
    不带参数的存储过程可以直接使用“调用DB存储过程”控件,将存储过程名称配置进去即可。 带返回值的参数 CREATE OR REPLACE PROCEDURE JOBTEST(CCX OUT NUMBER) AS BEGIN CCX:=88 ; DBMS_OUTPUT.PUT_LINE...
  • hibernate 调用存储过程

    千次阅读 2013-08-13 10:28:24
    1 查询列表(感觉使用HBM映射文件方式挺方便的,查出的结果直接是 List ,如果是多人开发,不建议使用这种方式,因为这些HBM...(1) 调用无参查询所有存储过程 a .HBM文件配置 : .........
  • 本文主要介绍如何通过c#调用自定义存储过程,实现根据ID查询USER表中的记录,并将其结果返回,存放到DataTable中。  为了加深对存储过程的理解,通过两种方式实现上文要求。第一种方式是传统的将sql语句提交到...
  • 存储过程return与output区别 共同点:都返回值(但return只能返回int类型)  不同点: 1.output是定义变量是不是可以返回值  2.output没有return从查询或过程中无条件退出的工功  3.return返回值在函数和过程...
  • 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在大型数据库系统中,...
  • hibernate如何调用存储过程

    万次阅读 2017-07-17 16:39:19
    一般我们用PL/SQL写好存储过程后,用JDBC调用的比较多,如何你想用hibernate,那怎么调用存储过程呢? 下面我们来看看Hibernate调用Oracle的存储过程 的几种方式 1.先创建一个存储过程如下: create Procedure ...
  • KETTLE调用Oracle存储过程

    千次阅读 2019-10-13 16:46:16
    使用KETTLE调用存储过程 1.创建调用存储过程的转换 1.1创建转换 点击右上角【文件】->【新建】->【转换】 1.2添加步骤 1.2.1 在新创建的转换中添加【表输入】,【调用DB存储过程】步骤 在右侧【核心...
  • kettle 调用存储过程

    万次阅读 2015-07-08 15:10:57
    这里整理一下有关kettle调用存储过程的问题 刚开机,就看到昨天写的存储过程在kettle的Job定时调用里没有执行成功,很是不理解!就是简单的更新两个表的字段,注意这里我定义了一个输出参数MESSAGE(用于捕获过程中...
  • pb使用RPCFUNC调用存储过程

    千次阅读 2016-09-26 22:56:02
    归纳起来PB6.0中调用Oracle存储过程有以下四种方法。  方法一:以关键字RPCFUNC声明存储过程;  方法二:以DECLARE PROCEDURE语句声明存储过程;  方法三:以动态SQL语句实现;  方法四:调用函数PBDBMS.Put_...
  • 如何使用mybatis调用存储过程

    万次阅读 2017-10-07 01:01:00
    如何使用mybatis调用存储过程 先提供一个秒杀逻辑(https://github.com/cdefgab1234/seckill)的存储过程: --秒杀执行存储过程 DELIMITER $$ -- 运行第二次,这是为了能多次运行 DROP PROCEDURE IF EXISTS `...
  •  查询1万多条数据:在数据库直接执行存储过程耗时2秒,在测试系统运行,也是3、5秒就显示结果了。  发布到正式系统,发现运行非常非常慢(5分钟)。 解决办法:重新编译正式系统的存储过程 结 果:运行速度回复
  • java调用存储过程

    千次阅读 2018-08-29 10:48:05
    一:Java如何实现对存储过程调用:  A:不带输出参数的  ---------------不带输出参数的---------------------------------- create procedure getsum @n int =0&lt;--此处为参数--&gt; as declare @sum ...
  • mybaits调用存储过程

    千次阅读 2015-09-16 17:03:49
    博客原文:使用mybatis执行oracle存储过程 存储过程在小公司用的不多,但是如果业务比较复杂或者性能要求比较苛刻的时候存储过程就派上用场了,ibatis的前期的一些版本貌似不支持存储过程因此我选择了...
  • cognos调用存储过程

    千次阅读 2005-09-01 11:12:00
    如何从数据源调用存储过程:在处直接写存储过程的名字何参数即可,比如在sql server的northwind上创建返回单数据集的存储过程代码如下:create procedure getEmployee@empID intasselect * from Employeeswhere ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 793,163
精华内容 317,265
关键字:

如何直接调用存储过程