zoukankan      html  css  js  c++  java
  • sql: Oracle 11g create procedure

    CREATE OR REPLACE PROCEDURE proc_Insert_BookKindList 
    (
    temTypeName nvarchar2,
    temParent int
    )
    AS
    ncount number;
    begin
    --SELECT COUNT (*) INTO ncount FROM BookKindList fm1 where  EXISTS (SELECT BookKindName from BookKindList fm2 where  fm2.BookKindName=temTypeName);--判斷是否存
    SELECT count(*) INTO ncount FROM BookKindList where BookKindName=temTypeName;
    if ncount<=0 then
    begin
    INSERT INTO BookKindList (BookKindName,BookKindParent) VALUES(temTypeName,temParent);
    commit;
    end;
    else
    begin
      SELECT BookKindID INTO ncount FROM BookKindList where BookKindName=temTypeName;
      dbms_output.put_line('存在相同的记录,添加不成功!'||ncount);
    end;
    end if;
    Exception 
        When others then 
          dbms_output.put_line('存在问题,添加不成功!'||ncount);
           Rollback; 
    end proc_Insert_BookKindList;
    
    --测试 oracle 11g 涂聚文 20150526
    exec proc_Insert_BookKindList ('油彩画',3);
    
    drop PROCEDURE proc_Insert_BookKindOut;
    
    
    CREATE OR REPLACE PROCEDURE procInsertBookKindOut --添加返回ID
    (
    temTypeName nvarchar2,
    temParent number,
    temId out number   
    )
    AS
    ncount number;
    reid number;
    begin
    --SELECT COUNT (*) INTO ncount FROM BookKindList fm1 where  EXISTS (SELECT BookKindName from BookKindList fm2 where  fm2.BookKindName=temTypeName);--判斷是否存
    SELECT count(*) INTO ncount FROM BookKindList where BookKindName=temTypeName;
    if ncount<=0 then
    begin
    INSERT INTO BookKindList (BookKindID,BookKindName,BookKindParent) VALUES(BookKindList_SEQ.nextval,temTypeName,temParent);
    select BookKindList_SEQ.currval into reid from dual;
    temId:=reid;
    dbms_output.put_line('添加成功!'||temId);
    commit;
    end;
    else
    begin
      SELECT BookKindID INTO ncount FROM BookKindList where BookKindName=temTypeName;
      dbms_output.put_line('存在相同的记录,添加不成功!'||ncount);
      temId:=0;
    end;
    end if;
    Exception 
        When others then 
        begin
          dbms_output.put_line('存在问题,添加不成功!'||ncount);
          temId:=0;
           Rollback; 
        end;
    end procInsertBookKindOut;
    
    --测试 oracle 11g 涂聚文 20150526
    declare
    mid  number:=0;
    nam  nvarchar2(100):='黑白画';
    par  number:=3;
    begin
    --proc_Insert_BookKindOut(nam in nvarchar2,par in int,mid in out int);
    procInsertBookKindOut(nam,par ,mid);
    if mid>0 then
    dbms_output.put_line('添加成功!输出参数:'||mid);
    else
    dbms_output.put_line('存在相同的记录,添加不成功!输出参数:'||mid);
    end if;
    end;
    

      csharp 调用:

    ///<summary>
            /// 追加记录
            ///</summary>
            ///<param name="BookKindListInfo"></param>
            ///<returns></returns>
            public int InsertBookKindList(BookKindListInfo bookKindList)
            {
                int ret = 0;
                try
                {
                    OracleParameter[] par = new OracleParameter[]{
    				new OracleParameter("temTypeName",OracleType.NVarChar,1000),
    				new OracleParameter("temParent",OracleType.Number,4),
    				};
                    par[0].Value = bookKindList.BookKindName;
                    par[1].Value = bookKindList.BookKindParent;
                    ret = OracleHelper.ExecuteSql("proc_Insert_BookKindList", CommandType.StoredProcedure, par);
                }
                catch (OracleException ex)
                {
                    throw ex;
                }
                return ret;
            }
            /// <summary>
            /// 追加记录返回
            /// </summary>
            /// <param name="authorList"></param>
            /// <param name="authorID"></param>
            /// <returns></returns>
            public int InsertBookKindOutput(BookKindListInfo bookKindList, out int bookKindLID)
            {
                bookKindLID = 0;
                int ret = 0;
                try
                {
                    OracleParameter[] par = new OracleParameter[]{
    				new OracleParameter("temTypeName",OracleType.NVarChar,1000),
                    new OracleParameter("temParent",OracleType.Number,4),
                    new OracleParameter("temId",OracleType.Number,4),
    				};
                    par[0].Value = bookKindList.BookKindName;
                    par[1].Value = bookKindList.BookKindParent;
                    par[2].Direction = ParameterDirection.Output;
                    ret = OracleHelper.ExecuteSql("proc_Insert_BookKindOut", CommandType.StoredProcedure, par);
                    if (ret > 0)
                    {
                        bookKindLID =int.Parse(par[2].Value.ToString());
                    }
                }
                catch (OracleException ex)
                {
                    throw ex;
                }
                return ret;
            }
    

      

     /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                BookKindListInfo bookKindListInfo = new BookKindListInfo();
                BookKindListBLL bookKindListBLL = new BookKindListBLL();
                bookKindListInfo.BookKindParent =(int)this.numericUpDownBookKindParent.Value;
                bookKindListInfo.BookKindName = this.textBoxBookKindName.Text.Trim();
    
                int k = 0;
                k = bookKindListBLL.InsertBookKindList(bookKindListInfo);
                if (k > 0)
                {
                    MessageBox.Show("ok");
                }
                else
                {
                    MessageBox.Show("no");
                }
    
    
    
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, EventArgs e)
            {
                BookKindListInfo bookKindListInfo = new BookKindListInfo();
                BookKindListBLL bookKindListBLL = new BookKindListBLL();
                bookKindListInfo.BookKindParent = (int)this.numericUpDownBookKindParent.Value;
                bookKindListInfo.BookKindName = this.textBoxBookKindName.Text.Trim();
                int ou = 0;
                int k = 0;
                k = bookKindListBLL.InsertBookKindOutput(bookKindListInfo,out ou);
                if (k > 0)
                {
                    MessageBox.Show("ok:id"+ou.ToString());
                }
                else
                {
                    MessageBox.Show("no");
                }
            }
    

      

  • 相关阅读:
    c语言 414 根据输入的整数,循环显示1234567890
    c语言 47 编写一段程序,显示小于输入的整数的所有2的乘方。
    c语言49 交替输出正负号,当输入0以下时什么也不显示
    c语言48 改写48的程序,当输入的值小于1时不输出换行符
    c语言 411 逆向输出输入的整数值(同时输出原始数据)
    c语言47 显示出小于输入的整数的所有2的乘方
    c语言412 输入一个整数值显示其位数
    c语言415 输出标准身高体重对照表
    c语言413 求1到n的和
    c语言 410 输出连续* \n
  • 原文地址:https://www.cnblogs.com/geovindu/p/4531952.html
Copyright © 2011-2022 走看看