精华内容
下载资源
问答
  • 今天mysql数据库中执行一个存储过程,由于没有安装mysql数据连接工具,只好黑框框里执行然后就遇到下面的问题: 一直说是我的存储过程的语法有问题,但是看了好久都没有看出问题,后来查了一上午资料才发生...

    今天在mysql数据库中执行一个存储过程,由于没有安装mysql数据连接工具,只好在黑框框里执行然后就遇到下面的问题:

    一直说是我的存储过程的语法有问题,但是看了好久都没有看出问题,后来查了一上午资料才发生问题所在:

    在mysql中“;”会默认为是一句sql语句的结束,所以在使用source命令执行数据库脚本时,遇到“;”符号时,数据库会认为你一句sql语句写完了,他会自动执行这句,这时候就出问题了,要解决这个问题可以使用DELIMITER命令来自定义语句的结束标志,然后就可以顺利执行存储过程了。记得在存储过程最后把语句结束标志在改回来。

    例:

    -- ----------------------------
    -- Procedure structure for `proc_adder`
    -- ----------------------------
    DROP PROCEDURE IF EXISTS `proc_adder`;
    DELIMITER ;;
    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)
    BEGIN
        #Routine body goes here...
    
        DECLARE c int;
        if a is null then set a = 0; 
        end if;
      
        if b is null then set b = 0;
        end if;
    
        set sum  = a + b;
    END
    ;;
    DELIMITER ;

     

    转载于:https://www.cnblogs.com/qinshou/p/8367109.html

    展开全文
  • call pro_tjxx('2013-01-01','2013-12-13'); 报错: SQL0304N 不能赋值给主变量,因为该值不主变量的数据类型的...反复检查存储过程发现存储过程里声明一个变量为SMALLINT的变量,数据超出范围,改为INT型正常了。

    DB2客户端执行 call pro_tjxx('2013-01-01','2013-12-13');

    报错:

    SQL0304N  不能赋值给主变量,因为该值不在主变量的数据类型的范围之内。 
    SQLSTATE=22003

    反复检查存储过程,发现存储过程里声明一个变量为SMALLINT的变量,数据超出范围,改为INT型正常了。

    展开全文
  • 最近使用存储过程处理大批量数据,里面用到了游标,进行测试的时候报错“ORA-20000:ORU-10027:BUFFER OVERFLOW, LIMIT OF 10000 BYTES”。 从网上查询是数据量太多了,用DBMS_OUTPUT.ENABLE(BUFFER=>NULL)可以...
  • NHibernate里执行存储过程 NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库,来源于非常优秀的基于Java的Hibernate 关系型持久化工具.NHibernate里怎么执行存储过程呢?下面有一个简单的例子,...
    
    NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库,来源于非常优秀的基于JavaHibernate 关系型持久化工具.
    在NHibernate里怎么执行存储过程呢?下面有一个简单的例子,使用的MS SQL Server 2000 NorthWind库里的CustOrderHist存储过程.
    先建2个实体类:
    1.CustOrderHist : Customer Historical Order Summary
        /// <summary>
        
    /// Customer Historical Order Summary Object Entity Class
        
    /// </summary>
        public class CustOrderHist
        {
            
    private string productName;
            
    private int total;

            
    /// <summary>
            
    /// Constructor
            
    /// </summary>
            
    /// <param name="productName">Product Name</param>
            
    /// <param name="total">Total Quantity</param>
            public CustOrderHist ( string productName,int total)
            {
                
    this.productName = productName;
                
    this.total = total;
            }

            
    /// <summary>
            
    /// Product Name
            
    /// </summary>
            public string ProductName
            {
                
    get { return productName; }
            }

            
    /// <summary>
            
    /// Total Quantity
            
    /// </summary>
            public int Total
            {
                
    get { return total; }
            }

            
    /// <summary>
            
    /// Return Product Name And Quantity
            
    /// </summary>
            
    /// <returns></returns>
            public override string ToString ( )
            {
                
    return "Product Name : " + productName + "; Quantity: " + total;
            }
        }

    映射关系:
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
      
    <sql-query name="GetCustomerOrderHistory">
        
    <return-scalar column="ProductName" type="String" />
        
    <return-scalar column="Total" type="int" />
        exec CustOrderHist :CustomerID
      
    </sql-query>
    </hibernate-mapping>

    2.Customer:Customer表的2个字段:CustomerID And CompanyName 提供选择CustomerID
    /// <summary>
        
    /// Customer Object Entity Class
        
    /// </summary>
        public class Customer
        {
            
    private string customerID;
            
    private string companyName;

            
    /// <summary>
            
    /// Customer ID
            
    /// </summary>
            public string CustomerID
            {
                
    get { return customerID; }
                
    set { customerID = value; }
            }

            
    /// <summary>
            
    /// Company Name
            
    /// </summary>
            public string CompanyName
            {
                
    get { return companyName; }
                
    set { companyName = value; }
            }
        }

    映射关系:
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
      
    <class name="NHibernate.Study.Entity.Customer,Entity" table="Customers">
        
    <id name="CustomerID">
          
    <column name="CustomerID" sql-type="string" length="5"/>
          
    <generator class="assigned" />
        
    </id>
        
    <property name="CompanyName">
          
    <column name="CompanyName" sql-type="string" length="40"/>
        
    </property>
      
    </class>
    </hibernate-mapping>
    再来看看Data Object Access Class:
        public class BllExecPro : IDisposable
        {
            
    private ISession session = null;

            
    public void Dispose ( )
            {
                session.Dispose( );
            }

            
    public BllExecPro ( )
            {
                session 
    = NHLibrary.NHFactory.OpenSession( );
            }

            
    public IList<Customer> getCustomerIDList ( )
            {
                
    return session.CreateQuery( "FROM Customer" )
                    .SetMaxResults( 
    10 )
                    .List
    <Customer>( );
            }

            
    public IList<CustOrderHist> getCustOrderHistList ( string customerID )
            {
                IQuery query 
    = session.GetNamedQuery( "GetCustomerOrderHistory" )
                    .SetString( 
    "CustomerID" , customerID )
                    .SetResultTransformer(
                        
    new NHibernate.Transform.AliasToBeanConstructorResultTransformer(
                        
    typeof( CustOrderHist ).GetConstructors( )[0] ) );
                
    return query.List<CustOrderHist>( );
            }
        }
    页面 HTML:
    <form id="form1" runat="server">
        
    <div>
            
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataTextField="CompanyName"
                DataValueField
    ="CustomerID" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
                Width
    ="238px">
            
    </asp:DropDownList>
            
    <asp:GridView ID="GridView1" runat="server"></asp:GridView>    
        
    </div>
        
    </form>
    Codebehind:
        protected void Page_Load ( object sender , EventArgs e )
        {
            
    if ( !IsPostBack )
            {
                bindDropDownList( );
            }
        }

        
    private void bindDropDownList ( )
        {
            BllExecPro bllExecPro 
    = new BllExecPro( );
            DropDownList1.DataSource 
    = bllExecPro.getCustomerIDList( );
            DropDownList1.DataBind( );
            bindGridView( bllExecPro,DropDownList1.SelectedValue );
        }

        
    private void bindGridView (BllExecPro bllExecPro, string customerID )
        {
            
    if ( bllExecPro == null)
                bllExecPro 
    = new BllExecPro( );
            GridView1.DataSource 
    = bllExecPro.getCustOrderHistList( customerID );
            GridView1.DataBind( );
            bllExecPro.Dispose( );
        }

        
    protected void DropDownList1_SelectedIndexChanged ( object sender , EventArgs e )
        {
            bindGridView(
    null, DropDownList1.SelectedValue );
        }
    浏览页面,通过SQL 事件探察器可以看到在执行 bllExecPro.getCustomerIDList( ) 时实际执行的SQL 语句是:
    select top 10 customer0_.CustomerID as CustomerID3_, customer0_.CompanyName as CompanyN2_3_ from Customers customer0_
    在执行 bllExecPro.getCustOrderHistList( customerID ) 时实际执行的SQL语句是:
    exec sp_executesql N'exec CustOrderHist @p0', N'@p0 nvarchar(5)'@p0 = N'对应的customerID'
     
    展开全文
  • NHibernate是一个基于.Net的针对...NHibernate怎么执行存储过程呢?下面有一个简单的例子,使用的MS SQLServer2000 NorthWind库里的CustOrderHist存储过程.先建2个实体类:1.CustOrderHist : Customer Historical ...

    NHibernate 是一个基于.Net的针对关系型数据库的对象持久化类库,来源于非常优秀的基于JavaHibernate关系型持久化工具.
    在NHibernate里怎么执行存储过程呢?下面有一个简单的例子,使用的MS SQLServer2000 NorthWind库里的CustOrderHist存储过程.
    先建2个实体类:
    1.CustOrderHist : Customer Historical Order Summary

         /// <summary>

         /// Customer Historical Order Summary Object Entity Class

         /// </summary>
        public class CustOrderHist

            
    private string productName;
            
    private int total;

     

         this.total = total;
         }       

         /// <summary>
        
    /// Product Name

       /// </summary>
            public string ProductName
            {            

        get { return productName; }        

       }        

        /// <summary>
           
    /// Total Quantity
           
    /// </summary>
           public int Total
           {
                
    get { return total; }
       }

            
    /// <summary>        

        /// Return Product Name And Quantity
            
    /// </summary>
            
    /// <returns></returns>
            public override string ToString ( )
            {
               
    return "Product Name : " + productName + "; Quantity: " + total;
            }
        }

    /// <summary>
            
    /// Constructor
           
    /// </summary>
           
    /// <param name="productName">Product Name</param>
            
    /// <param name="total">Total Quantity</param>
            public CustOrderHist ( string productName,int total)
          {
                
    this.productName = productName;            


    映射关系:

    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
      
    <sql-query name="GetCustomerOrderHistory">
      <return-scalar column="ProductName" type="String" />
       
    <return-scalar column="Total" type="int" />

        exec CustOrderHist :Customer  

     </sql-query>
    </hibernate-mapping>

    2.Customer:Customer表的2个字段:CustomerID And CompanyName 提供选择CustomerID

        /// <summary>
         
    /// Customer Object Entity Class
       
    /// </summary>

      public class Customer
        {
            
    private string customerID;
       private string companyName;

        /// <summary>
            
    /// Customer ID
         
    /// </summary>
            public string CustomerID
            {
                
    get { return customerID; }

                set { customerID = value; }
            }

            
    /// <summary>
            
    /// Company Name
            
    /// </summary>

       public string CompanyName
          {
                
    get { return companyName; }
                
    set { companyName = value; }
         }
        }


    映射关系:

    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
     
    <class name="NHibernate.Study.Entity.Customer,Entity" table="Customers">

        <id name="CustomerID">
        <column name="CustomerID" sql-type="string" length="5"/>
        <generator class="assigned" />
        
    </id>
        
    <property name="CompanyName">
           
    <column name="CompanyName" sql-type="string" length="40"/>
        
    </property>
     </class>
    </hibernate-mapping>

    再来看看Data Object Access Class:

        public class BllExecPro : IDisposable
       {
        private ISession session = null;

           
    public void Dispose ( )
          {
               session.Dispose( );
          }

            
    public BllExecPro ( )        

        {
                session 
    = NHLibrary.NHFactory.OpenSession( );
             }

            
    public IList<Customer> getCustomerIDList ( )
            {
                
    return session.CreateQuery( "FROM Customer" )

                    .SetMaxResults( 10 )
                  .List
    <Customer>( );
          }

          
    public IList<CustOrderHist> getCustOrderHistList ( string customerID )
           {
               IQuery query 
    = session.GetNamedQuery( "GetCustomerOrderHistory" )
                  .SetString( 
    "CustomerID" , customerID )
                    .SetResultTransformer(

                        new NHibernate.Transform.AliasToBeanConstructorResultTransformer(

                        typeof( CustOrderHist ).GetConstructors( )[0] ) );

                return query.List<CustOrderHist>( );
            }
        }

    页面 HTML:

    <form id="form1" runat="server">
     
    <div>
         
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataTextField="CompanyName"
          DataValueField
    ="CustomerID" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"  Width="238px">
      
    </asp:DropDownList>
        
    <asp:GridView ID="GridView1" runat="server"></asp:GridView>    
     
    </div>    

    </form>

    Codebehind:

        protected void Page_Load ( object sender , EventArgs e )
        {
            
    if ( !IsPostBack )
            {
                bindDropDownList( );        }
        }
        
    private void bindDropDownList ( )

        {

            BllExecPro bllExecPro = new BllExecPro( );

            DropDownList1.DataSource = bllExecPro.getCustomerIDList( );
            DropDownList1.DataBind( );
            bindGridView( bllExecPro,DropDownList1.SelectedValue );
        }

        
    private void bindGridView (BllExecPro bllExecPro, string customerID )
        {
            
    if ( bllExecPro == null)

                bllExecPro = new BllExecPro( );
            GridView1.DataSource 
    = bllExecPro.getCustOrderHistList( customerID );
            GridView1.DataBind( );
            bllExecPro.Dispose( );
        }

        
    protected void DropDownList1_SelectedIndexChanged ( object sender , EventArgs e )
        {
            bindGridView(
    null, DropDownList1.SelectedValue );
        }

    浏览页面,通过SQL 事件探察器可以看到在执行 bllExecPro.getCustomerIDList( ) 时实际执行的SQL 语句是: 

    None.gifselect top 10 customer0_.CustomerID as CustomerID3_, customer0_.CompanyName as CompanyN2_3_ from Customers customer0_

    在执行 bllExecPro.getCustOrderHistList( customerID ) 时实际执行的SQL语句是:

    None.gifexec sp_executesql N'exec CustOrderHist @p0', N'@p0 nvarchar(5)'@p0 = N'对应的customerID'

     

     

    原文:http://space.itpub.net/?uid-12639172-action-viewspace-itemid-182250

    转载于:https://www.cnblogs.com/pfs1314/archive/2010/04/16/1713472.html

    展开全文
  • 这里记录一下关于工作当中遇到的一个关于国产数据库达梦的一个存储过程的问题。 搜索存储过程执行慢,sql执行快,百度第一条是 https://blog.csdn.net/qq_18145031/article/details/99819061 但是我发现用到的...
  • 数据库存储过程

    2018-04-13 19:53:24
    二、存储过程的优点性能上的提高,比起通过应用程序发送SQL语句给数据库执行,让数据库自己内部执行存储过程效率更高、速度更快。减少了应用程序与数据库信息的交互频率。一些业务中,应用程序发送多条SQL指令给...
  • 写的脚本,执行数据库的存储过程,直接输入./ExecuteProcedure.sh,执行没问题,但是放到cron里面,就是不执行存储过程 加放调试set -x,发现执行 + dbaccess db + echo execute procedure p_procedure(); -...
  • /// 执行存储过程--不带参数执行存储过程 /// </summary> /// <param name="storedProcName">存储过程名</param> /// <returns>DataSet</returns> public static void ...
  • 执行后会output中打印my first execute,那么这里就有了第一个功能dbms_output.put_line,output里面打印结果,另外还有dbms_output.put,这个通常不用,put不含回车,而put_line是含回车的下面介绍下如何写一个...
  • 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 简单来说,存储过程就是数据库 SQL 语言层面的代码封装与重用。 -- 若存在此...
  • 我用的是sqlhelp这个类 存储过程返回的是sqldatareader 我现在想接受我存储过程里返回的rowcount值 我该如何做 谢谢各位大神
  • 在上一篇的文章中我们知道了由一个存储过程的语句生成一个语法树,但是这个语法树的保存在数据库系统中,这里给出一个存储过程的存储方案 可以看出存储过程的原来的sql语句是保存在一张表里面的。并且也把...
  • 点击上面的每个按钮,都会在数据库里执行存储过程进行同步数据。具体的实现方法及步骤如下: 然后,对应html 的书写是: <div class="address">当前位置:申报设置 >> 信息同步</div> <div ...
  • 每天都跟 mysql 打交道,你知道执行一条简单的 select 语句,都经历了哪些过程吗? 首先,mysql 主要是由 server 层和存储层两部分构成的。server 层主要包括连接器、查询缓存,分析器、优化器、执行器。存储层...
  • scheduler job在数据库里执行与事务关系测试 创建几个测试用存储过程 create or replace procedure p_test is begin insert into test values(1,'test'); end p_test; / create or replace procedure p_test_...
  • (2) 查询的语句在存储过程里,与程序不相关,如果以后要修改程序或者数据库,都不会出现连锁反应,增加系统可扩展性. (3) 网站执行查询的时候,只需要传递简单的参数就可以了,无论是代码优化上还是查询优化上都可以做到...
  • 数据库存储过程小结

    千次阅读 热门讨论 2015-06-14 20:47:23
    存储过程是存储在数据库中的一个程序块,里面包含了自己定义的一段程序来实现相应的功能,比如要选择数据库的表里面的记录,就可以使用下面的存储过程的框架: CREATE PROCEDURE --参数的定义 = , = AS BEGIN ...
  • 触发器是一个特殊的存储过程。  常见的触发器有三种:分别应用于Insert , Update , Delete 事件。(SQL Server 2000定义了新的触发器,这里不提)  我为什么要使用触发器?比如,这么两个表:
  • 1、由于查询分析器里执行速度很快,并且数据量也不多。 2、只程序里调用才有缓慢的情况。 3、设置CommandTimeout参数,就可以显示结果出来,但要很久。 方案1: : 延长 访问数据库的 超时时间,若 sql返回...
  • 1.存储过程的封装:右键函数--新增函数--选择进程(进程是没有返回值的)或者选择函数(函数是有返回值的) 2.这里我们选择进程--进入后点击下一步 模式中有IN(往输入参数),OUT(往外输出参数),INOUT,...
  • 一、存储过程 1、存储过程---就像数据库中...执行速度更快:在数据库中保存的存储过程语句都是编译过的,运行时无需再次编译。 允许模块化程序设计:类似方法的复用。 提高系统安全性:防止SQL注入。 减少网络...
  • 数据库存储过程简介

    2013-08-09 21:34:43
    (1) 把SQL代码放在存储过程里会有更好的性能,因为SQL-Server它第一次执行时就生成并缓存了存储过程执行计划。 (2) 使用存储过程可以更好的维护访问和操作数据的代码,它集中放在一个地方,能够使三层架构...
  • 用户在执行存储过程时,需要指定存储过程的名称并给出参数(如果存储过程包含参数) 存储过程创建的语法格式如下示例: CREATE PROCEDURE <proc_name>([<parameter_1>[,…] [,parameter_n]]) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,212
精华内容 484
关键字:

在数据库里执行存储过程