zoukankan      html  css  js  c++  java
  • Oracle 调用存储过程执行动态SQL语句(无参)

    今天想在程序拼接好执行修改语句(添加、更新、删除),调用数据库存储过程执行

    首先,我们来编写这个存储过程

    /*
    *  执行存储过程
    * 输入参数:执行SQL
    * 输出参数:返回受影响行数
    */
    create or replace procedure Proc_ExecSql
    (
    --定义输入、输出参数--
    strSql in varchar,
    strCount out integer
    )
    as
    --定义变量--
    begin   
         --执行动态SQL
         execute immediate strSql;
         --返回受影响行数
         strCount:=sql%rowcount;
         dbms_output.put_line('执行返回结果:'||strCount );
         commit;
    end;

    调用存储过程实例:

    调用存储过程方法(公司内部)

            /// <summary>
            /// 执行存储过程
            /// </summary>
            /// <param name="rkDb">数据库连接</param>
            /// <param name="procName">存储过程名称</param>
            /// <param name="execSql">执行Sql语句</param>
            /// <returns></returns>
            public int ExecSqlByProceducre(IDbContext rkDb,string procName,string execSql)
            {
                //创建存储过程对象
                IStoredProcedureBuilder sb = rkDb.StoredProcedure(procName);
                //添加参数到对象中
                sb.Parameter("STRSQL", execSql, DataTypes.String);   //输入参数
                sb.ParameterOut("STRCOUNT", DataTypes.Int32);  //输出参数
                //执行存储过程 
                sb.Execute();
                //获取存储过程中输出参数的值         
                return (int)sb.ParameterValue<dynamic>("STRCOUNT");
            }

    调用执行前

     调用执行测试

    declare strCount integer;
    begin
       --调用存储过程(名称:一次性使用药液转移过滤器 --> 一次性使用药液) ---
       PROC_EXECSQL('update DXC_GOODS set NAME=''一次性使用药液'' where MID=164600',strCount);
    end;

    调用执行后

    平时多记记,到用时才能看看,记录你的进步,分享你的成果
  • 相关阅读:
    HDU
    HDU
    HDU
    HDU
    西电网络赛
    西电网络赛
    西电网络赛
    西电网络赛
    西电网络赛
    西电网络赛
  • 原文地址:https://www.cnblogs.com/xielong/p/15741353.html
Copyright © 2011-2022 走看看