informix存储过程,如何将列名做为参数传递进去?

1、准备数据
drop table if exists t1;
create table t1(id int,name char(20));
insert into t1 values(1,'jim');
select * from t1;
id name
1 jim
2、创建存储过程
drop procedure if exists mypro1();
create procedure mypro1()
returning char(20);
define str1 char(20);
select name into str1 from t1;
return str1;
end procedure;

execute procedure mypro1();

执行结果:
jim
3、问题
请问存储过程中select语句中的name,能否通过参数传递进去,也就是使用表的列名做为存储过程的参数传递到存储过程中。
划重点:不是简单的给存储过程传递参数,而是传递的参数是表的列名

参与5

2同行回答

liaosnetliaosnet信息分析/架构师gbasedbt.com
使用游标。create procedure myproc2(colname varchar(128)) returning varchar(128)   define str1 varchar(128); define querysql lvarchar(2048); let querysql = 'select ' || colname || ' from t1'; prepare stmt_id from query...显示全部

使用游标。

create procedure myproc2(colname varchar(128)) returning varchar(128)
  define str1 varchar(128);
  define querysql lvarchar(2048);
  
  let querysql = 'select ' || colname || ' from t1';
  prepare stmt_id from querysql;
  declare querycur cursor for stmt_id;
  open querycur;
  fetch querycur into str1;
  close querycur;
  return str1;
end procedure;
收起
IT咨询服务 · 2020-05-12
浏览1372
zhuqibszhuqibs软件开发工程师Adidas
利用存储过程中的传参传过去显示全部

利用存储过程中的传参传过去

收起
互联网服务 · 2020-04-30
浏览1308

相关问题

问题状态

  • 发布时间:2018-03-07
  • 关注会员:3 人
  • 问题浏览:2292
  • 最近回答:2020-05-12
  • X社区推广