blogger

    blogger
  • hot log

  • comment

    twitter

    • 空间续费,加上ssl连接。。

      2018-11-22 01:04

    • 12.10.xC6出来时候碰到"Could not determine encryption mode from page zero",竟果然是BUG!http://www-01.ibm.com/support/docview.wss?rs=630&uid=swg21973408

      2015-12-21 20:15

    • 空间已经转移到新加坡,希望会好一些。

      2015-11-16 14:34

    • 增加新域名liaosnet.cc,与liaosnet.com同指向。

      2015-10-09 15:25

    • 空间迁移到香港。或许速度会快一点。。

      2014-02-13 20:10

    • More»

    blog sort

    links

    record

    banner

    GBase 8T数据库存储过程使用出参示例

    暗夜星空's Memory from Apr 12 , 2018 at 15:39 PM , under Category:IFX/GBase
    GBase 8T数据库的存储过程支持入参,出参 out ,入出参 inout。
    以下以示例说明存储过程的入参,出参,以及使用存储过程调用出参的过程及方法。

    1, 创建存储过程 入参、出参。
    drop procedure if exists p3;
    create procedure p3(v1 int, out v2 varchar(20))
      let v1 = 101;
      let v2 = "P3 out parm value";
    end procedure;
    
    2, 另一个存储过程用于调用前一个存储过程的入参、出参。需要注意的是:调用的存储过程应对变量指定默认值,不指定值将会报错。
    drop procedure if exists c_p3;
    create procedure c_p3() returning varchar(20)
      define v1 int;
      define v2 varchar(20);
      
      let v1 = 22;
      let v2 = "C_P3 input default value";
      -- SPL inout/out parm must has default value;
      call p3(v1,v2);
      
      return v2;
    end procedure;
    
    该存储过程返回的v2的应当是p3中出参的值。该存储过程返回的v2的应当是p3中出参的值。
    > execute procedure c_p3();
    
    (expression)         
    
    P3 out parm value 

    存储过程同样支持 入参、出参 使用ROW类型
    drop procedure if exists p4;
    create procedure p4(v1 int, out v2 ROW(col1 int, col2 varchar(20)))
      let v1 = 101;
      let v2 = ROW(4,"P4_test123");
    end procedure;
    
    drop procedure if exists c_p4;
    create procedure c_p4() returning varchar(20)
      define v1 int;
      define v2 ROW(col1 int, col2 varchar(20));
      define rc varchar(20);
      
      let v1 = 22;
      let v2 = ROW(33,"C_P4test");
      -- SPL inout/out parm must has default value;
      call p4(v1,v2);
      
      return v2.col2;  -- return SPL p4->v2->col2: "P4_test123"
    end procedure;

    Post a comment:

    Your email address will not be published. Required fields are marked﹡