加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

grails调用存储过程(调用的时候call不能少了那个一对大括号{},

发布时间:2020-12-14 16:46:48 所属栏目:大数据 来源:网络整理
导读:Sql?mySql?=?new?Sql(dataSource_lookup) def?=mySql.call("{call?test2(?)}",['650203199106272111']) 存储过程: CREATE?OR?REPLACE? PROCEDURE?"test2"(sfid?VARCHAR2)?AS v_sf_id?T_BASE.SF_ID%type; BEGIN SELECT?sf_id?into?v_sf_id?from?T_BASE?where?

Sql?mySql?=?new?Sql(dataSource_lookup)

def?=mySql.call("{call?test2(?)}",['650203199106272111'])

存储过程:

CREATE?OR?REPLACE?

PROCEDURE?"test2"(sfid?VARCHAR2)?AS

v_sf_id?T_BASE.SF_ID%type;

BEGIN

SELECT?sf_id?into?v_sf_id?from?T_BASE?where?SF_ID=sfid;

--?routine?body?goes?here,?e.g.

DBMS_OUTPUT.PUT_LINE('Navicat?for?Oracleaaaa'||v_sf_id);

END;

有一个问题最好把那个过程名的双引号去掉不然有时候会报错

?

?

带输入的存储过程:

Sql?mySql?=?new?Sql(dataSource_lookup)

def?ret

???????????mySql.call("{call?test2(?,?)}",['650203199106272111',mySql.VARCHAR]){ret=it}

println?"ret:>"+ret

?

CREATE?OR?REPLACE?

PROCEDURE?test2(sfid?VARCHAR2,names?OUT?VARCHAR2)?AS

v_sf_id?T_BASE.SF_ID%type;

?

BEGIN

SELECT?sf_id?into?names?from?T_BASE?where?SF_ID=sfid;

--?routine?body?goes?here,?e.g.

--DBMS_OUTPUT.PUT_LINE('Navicat?for?Oracleaaaa'||v_sf_id);

END;

?

?

?

?

?

?

?

带输入输出的游标存储过程:

返回集合的存储过程要用游标,而且要用带包的存储过程

包:

CREATE?OR?REPLACE?

PACKAGE?grails_package?AS?

type?grailsReture?is?ref?cursor;

/*?TODO?enter?package?declarations?(types,?exceptions,?methods?etc)?here?*/?

end?grails_package;

?

过程:

CREATE?OR?REPLACE?

PROCEDURE?grails_pak?(sex?IN?VARCHAR2,?grails_cursor?OUT?grails_package.grailsReture)

AS

BEGIN

open?grails_cursor?for?select?*?from?T_BASE?where?sex=sex;

--?routine?body?goes?here,?e.g.

--?DBMS_OUTPUT.PUT_LINE('Navicat?for?Oracle');

END;

?

Grails?调用:

Def?dataSource

Sql?mySql?=?new?Sql(dataSource_lookup)

def?ret

???????????mySql.call("{call?grails_pak(?,['男',mySql.resultSet(OracleTypes.CURSOR)]){carModel?->

//这里不能打印?carModel?会报错(Message:?org.apache.commons.dbcp.DelegatingCallableStatement?with?//address:?"oracle.jdbc.driver.OracleCallableStatementWrapper@1a1280c"?is?closed.)

carModel.eachRow(){x?->

println"car?style:?${x.sf_id},car?series:?${x.name},car?type:?${x.sj}"

???????????}?}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读