精华内容
下载资源
问答
  • 外部工具中执行存储过程(调试一下该存储过程效果一样) EXEC APP022.APP_OXYGEN_PRO.PRO_UPDATE_ID(‘hellowhat’); 存储过程中执行sql str:=‘select * from table’; EXECUTE IMMEDIATE STR; ...

    外部工具中执行存储过程(调试一下该存储过程效果一样)
    toad工具中使用:
    EXEC PRO_UPDATE_ID(‘hellowhat’);
    developer中:
    begin
    PRO_UPDATE_ID(‘hellowhat’);
    end;

    存储过程中执行sql
    str:=‘select * from table’;
    EXECUTE IMMEDIATE STR;

    展开全文
  • MySQL执行存储过程

    千次阅读 2019-01-21 14:08:07
    程序执行存储过程首先需要在控制台书写存储过程代码,并且执行存储过程,我是用idea的数据库模块书写代码并且在上面执行存储过程,我的存储过程代码为: create procedure PRO_usedGoods_Purchase(IN inuid ...

    程序执行存储过程首先需要在控制台书写存储过程代码,并且执行存储过程,我是用idea的数据库模块书写代码并且在上面执行存储过程,我的存储过程代码为:

    create procedure PRO_usedGoods_Purchase(IN inuid varchar(11), IN ingid int)
      label:BEGIN
        -- 声明变量 账户余额、商品价格、商品状态
        DECLARE decoin int;
        DECLARE deprice int;
        DECLARE destate int;
        -- 获取变量值
        SELECT coin into decoin  FROM  user  WHERE uid = inuid;
        SELECT price into deprice  FROM  usedgoods  WHERE  gid  = ingid;
        SELECT gstatus into destate  FROM  usedgoods  WHERE  gid  = ingid;
        -- 账户余额小于商品价格
        IF decoin < deprice  THEN
          # '您的账户余额不足!'
          ROLLBACK;
          LEAVE label;
        END IF;
        -- 商品已被出售
        IF destate != 0 THEN
          # '该商品已出售'
          ROLLBACK;
          LEAVE label;
        END IF;
        IF decoin > deprice THEN
          -- 账户上扣除商品价格
          UPDATE user SET coin = decoin-deprice  WHERE uid = inuid;
          -- 置商品为已售
          UPDATE usedGoods SET gstatus = 1 WHERE  gid  = ingid;
          -- 添加纪录到goodsOrder商品订单表
          #       INSERT INTO goodsOrder(gid,otime,uid) VALUES(ingid,DATE(CURDATE()),inuid);
          -- 成功执行存储过程
        END IF;
      END;
    
    其中SELECT coin into decoin FROM user WHERE uid = inuid;语句为将查询到的金币值赋给一个变量decoin,我先前是写的SELECT coin = decoin FROM user WHERE uid = inuid;最终查询到的结果全为空,mysql不能这样赋值,所以应该用into语句。

    第二,在JDBC工具类上面书写调用存储过程的函数,在JDBC工具类中书写存储过程的好处是该工具类已经获取了MySQL连接数据库的驱动、用户名、密码、路径等,所以在该类中书写代码然后在其他类中直接调用该方法,增加了程序的可读性,代码如下:

    //执行存储过程代码
    //当用户点击购买后若用户金币大于商品价钱则执行购买操作,减去用户账户上面相对应的金币,且相应的
    //商品状态置为已售状态,若小于商品价格则执行回滚操作,并提示账户余额不足
    public  static void executePRO(String uid, int gid) throws ClassNotFoundException, SQLException {
        Class.forName(driver);
        Connection connection = DriverManager.getConnection(url, username, password);
        CallableStatement cstm = connection.prepareCall("{call PRO_usedGoods_Purchase(?,?)}");
        cstm.setString(1, uid);
        cstm.setInt(2, gid);
        cstm.execute();
        cstm.close();
        connection.close();
    }

    最后在DAO层直接调用该类中的方法

    public static int insert(GoodsOrder go) throws SQLException, ClassNotFoundException {
        String sql = "select gstatus from usedGoods where gid = ?";
        ResultSet rs = JDBCHelper.query(sql,go.getGid());
        int gstatus=0;
        if(rs.next()){
            gstatus = rs.getInt(1);
        }
        if (gstatus==0) {
            String SQL = " insert into " +tableName + " ( gid ,  uid  ,name , address , phone , oimage , price) "
                    +" values ( "+go.getGid()+" , '"+go.getUid()+"' , '"+go.getName()+"' , '"+go.getAddress()+"' , '"+go.getPhone()+"' , '"+go.getOimage()+"' , "+go.getPrice()+" )";
            JDBCHelper.executePRO(go.getUid(),go.getGid());//调用存储过程
            return JDBCHelper.executeInsert( SQL) ;
        }
        return 0;
    }
    展开全文
  • 创建存储过程,执行存储过程

    千次阅读 2018-07-27 17:18:07
    无参数存储过程 create or replace procedure 存储过程的名称 is begin  xxxx......此处为自己需要执行的sql语句 commit; end 存储过程的名称;   含有入参的存储过程   create or replace procedure ...

    无参数存储过程

    create or replace procedure 存储过程的名称 is

    begin

         xxxx......此处为自己需要执行的sql语句

    commit;

    end 存储过程的名称;

     

    含有入参的存储过程

     

    create or replace procedure 存储过程的名称入参名称  in  参数类型varchar2 is

    begin

         xxxx......此处为自己需要执行的sql语句

    commit;

    end 存储过程的名称;

     

    执行存储过程

    call ehr_pir_cityrepeat();

    call ehr_pir_cityrepeat(?);

     

    展开全文
  • Oracle定时执行存储过程

    千次阅读 2018-02-01 18:54:00
    首先用一个完整的例子来实现定时执行存储过程。 任务目标:每小时向test表中插入一条数据 实现方案: 1.通过 oracle 中 dbms_job 完成存储过程的定时调用 2.在存储过程中完成相应的逻辑操作 实现步骤: ...

    首先用一个完整的例子来实现定时执行存储过程。

    任务目标:每小时向test表中插入一条数据

    实现方案:
    1.通过 oracle 中 dbms_job 完成存储过程的定时调用
    2.在存储过程中完成相应的逻辑操作

    实现步骤:
    1.创建一个测试表

    create table test(dTime date); 

    2.创建一个存储过程

    create or replace procedure p_test as 
    begin 
    insert into test values(sysdate); 
    end; 

    3.创建执行计划:每小时运行一次存储过程

    Declare 
      i Integer; 
    Begin 
       dbms_job.submit(i,'p_test;',Sysdate,'sysdate+1/24'); 
    end; 

    4.运行执行计划

    Declare 
      jobno Integer; 
    Begin 

    – 查找计划号

    Select t.JOB into jobno From User_Jobs t ; 

    – 运行制定的执行计划

    dbms_job.run(jobno); 
    end; 

    5.查看任务队列情况

    select job,next_date,next_sec,failures,broken from user_jobs; 

    6.查看任务执行情况

    select to_char(dTime ,'yyyy/mm/dd hh24:mi:ss') from test order By dTime; 

    7.停止执行计划

    Declare 
      jobno Integer; 
    Begin 

    – 查找计划号

    Select t.JOB into jobno From User_Jobs t ;
    – 停止计划,不再继续执行
    –dbms_job.broken(jobno,True);
    – 停止计划,并在两分钟后继续执行
    dbms_job.broken(jobno,True,Sysdate+(2/24/60));
    end;

    8.删除执行计划

    Declare
    jobno Integer;
    Begin

    – 查找计划号

    Select t.JOB into jobno From User_Jobs t ;
    dbms_job.remove(jobno);
    end;

    9.修改执行计划

    Declare
    jobno Integer;
    Begin
    – 查找计划号
    Select t.JOB into jobno From User_Jobs t ;
    – 修改为:每分钟执行一次
    dbms_job.interval(jobno, ‘sysdate+1/(24*60)’);
    end;

    参数说明:

    DBMS_JOB.SUBMIT(jobno =>jobID,//对应的唯一id(jobID <-> jobName)唯一映射 
                   procedureName=> 'your_procedure;',  //调用的存储过程名称 
                     next_date => sysdate,   //下次执行的时间(第一次执行的时间) 
                     interval => 'sysdate+1/1440');  //每次执行间隔的时间 

    以上就是定时执行存储过程的全部内容,留待后用吧。

    展开全文
  • EF执行存储过程

    千次阅读 2018-09-30 23:49:24
    EF执行存储过程与执行Sql语句非常类似,insert、delete、update操作通过ExecuteSqlCommand()执行,select操作通过SqlQuery&lt;Sys_User&gt;()执行。 一、执行insert存储过程(无返回值) CREATE ...
  • Oracle 动态执行存储过程

    千次阅读 2017-09-27 22:32:37
    Oracle 动态执行存储过程
  • CallableStatement执行存储过程

    千次阅读 2017-03-29 21:09:13
    CallableStatement执行存储过程 /** * 使用CablleStatement调用存储过程 * @author APPle * */ public class Demo1 { /** * 调用带有输入参数的存储过程 * CALL pro_findById(4); */ @Test public ...
  • ORACLE执行存储过程权限不足

    千次阅读 2017-03-06 14:41:11
    在网上看到,Oracle规定,在默认的情况下,在调用存储过程用户的角色不起作用,即在执行存储过程时只有Public权限。所以在调用Create table时,会有权限不足的提示。所以需要给当前存储过程制定角色,指定AUTHID ...
  • dbutils 执行存储过程,dbutils 执行存储过程,dbutils 执行存储过程,dbutils 执行存储过程.   dbutils 好像是不支持直接使用带输出参数存储过程,如果谁有直接调用的好方法多多指教。   如果是没有输出参数的...
  • 自动执行存储过程

    千次阅读 2007-09-29 02:19:00
    启动时自动执行存储过程[浏览:87 评论(0条)] 来源:it168 [2006-10-02]如何在启动SQL SERVER的时候,执行一个存储过程? 将存储过程创建在master数据库中,然后企业管理器中找到这个存储过程--右键--属性--勾选...
  • 循环执行存储过程

    千次阅读 2011-03-28 18:27:00
    有这样一个需求,一存储过程有一个datetime类型的输入参数,现要将2010年7月的每一天作为输入,执行存储过程。实现脚本如下:   DECLARE @RC int DECLARE @order_date datetime set @...
  • java jdbc 执行存储过程 和自定义函数

    千次阅读 2018-07-30 11:15:35
    java jdbc 执行存储过程 和自定义函数 1、创建存储过程 CREATE [DEFINER = { user | CURRENT_USER }]  PROCEDURE sp_name ([proc_parameter[,…]]) [characteristic …] routine_body proc_...
  • 在Pathon中如何执行存储过程呢?可以使用如下方法:存储过程定义基本如下:ALTER procedure [dbo].[mysp] @Station varchar(50), @SN varchar(50), @Info va
  • oracle 执行存储过程 ora-0131

    万次阅读 2017-03-28 09:55:45
    oracle 执行存储过程报错: ora-0131 权限不足问题解决方法。
  • oracle如何执行存储过程

    千次阅读 2015-07-28 13:54:44
    存储过程如下:Create procedure gokul_proc( pId in number, pName in varchar2, OutCur OUT G_PKG_REFCUR.rcDataCursor ) is BEGIN Open OutCur For select * from gokul_table ob where
  • 创建和执行存储过程

    千次阅读 2017-11-03 14:00:17
    创建存储过程 CREATE PROCEDURE procedure_name [WITH ENCRYPTION] [WITH RECOMRILE] AS sql_statement 注: WITH ENCRYPTION: 对存储过程进行加密 WITH RECOMPILE: 对存储过程重新编译   在book数据库中...
  • oracle定时执行存储过程

    千次阅读 2018-06-25 15:51:56
    使用oracle 的 PL/Sql 定时执行一个存储过程 测试目的:在表 tab 中间隔一分钟插入一条数据 实现方案: 1.通过 oracle 中 dbms_job 完成存储过程的定时调用 2.在存储过程中完成相应的逻辑操作 脚本说名: 以下...
  • Oracle中执行存储过程call和exec区别

    万次阅读 2017-10-31 22:28:50
    Oracle中执行存储过程call和exec区别 在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是exec是sqlplus命令,只能在sqlplus中使用;call为SQL命令,没有限制. 2....
  • JDBC之CallableStatement执行存储过程

    千次阅读 多人点赞 2020-03-31 09:45:06
    JDBC中如何调用存储过程?本文详细的讲解了如何使用CallableStatement来调用不同类型的存储过程
  • 用ef执行mysql获取返回值 数据库倒入模型,执行存储过程方法生成成功,生成的返回类型中没有字段、自己加了字段后 调取存储过程返回值中各字段指为空,但是再数据库中输入同样的参数有返回值。
  • Oracle11gR2 并行执行存储过程

    千次阅读 2019-06-19 18:14:59
    现在我们有3个存储过程,分别是p1,p2,p3 如果按下列方式执行 begin p1; p2; p3; end; 它们是串行的。 我们可以使用DBMS_SCHEDULER包来间接实现并行执行,具体用法如下: begin dbms_scheduler.create_job...
  • Oracle数据库PL/SQL中执行存储过程

    千次阅读 2019-04-02 09:09:25
    有时生产线上问题,或者调试需要手动在pl/sql中执行存储过程,但一般不建议这么做(影响线上交易)。 一、直接测试执行 在pl/sql中找到对应需要测试的存储过程,左边菜单栏:Procedures下。鼠标右击—>测试,...
  • 存储过程执行报错 ``` ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation ``` ``` DELIMITER $$ USE `jta2db`$$ DROP PROCEDURE IF EXISTS `...
  • db2执行存储过程

    千次阅读 2016-08-09 17:16:24
    调用时,输入参数是过程定义的类型,输出参数是?
  • 执行存储过程报错ORA-01031:权限不足 场景: 开发反馈执行存储过程报错:ORA-01031:权限不足;还准备叫后台帮执行对应存储过程(越想越不对诶,怎么自己的用户还需要后台帮执行存储过程)! 解决: 这时候就到后台...
  • ORACLE 执行revoke dba from user_name后需要细粒度赋权限,否则用户没有在指定表空间创建表的权限、执行dml的权限以及执行存储过程的权限。
  • hibernate3.0执行存储过程

    千次阅读 2014-01-16 15:49:33
    hibernate3.0以上提供了两种方式执行存储过程。 第一种 :用JDBC 方式 Session session =HibernateSessionFactory.getSession(); //获取hibernate会话 Connection conn = session.connection(); // 用...
  • (2)写入需要执行存储过程和定时时间 间隔/interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用...
  • ORACLE存储过程

    万次阅读 多人点赞 2018-11-02 18:14:48
    oracle存储过程 目录 一.什么是存储过程 二.为什么要写存储过程 三.存储过程基础 1.存储过程结构 2.存储过程语法 3.pl/sql处理存储过程 四.存储过程进阶 1.BUIK COLLECT 2.FORALL 3.pl/sql调试存储过程 ...
  • 也就是 当前数据库,有哪些表/字段/视图/存储过程等基础信息。保存在客户端的内存里面。这样。当你在客户端输入 SQL 语句的时候,输入 表名字.会自动弹出 这个表的字段列表,让你选择。但是,当你新建了一个对象的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,443,719
精华内容 577,487
关键字:

怎样执行存储过程