create or replace function getvaluebytab(in_tabname in varchar2,in_colname in varchar2)
return varchar2
is
v_sql varchar2(300);
v_str varchar2(50);
v_return varchar2(4000);
type t_cur_ref is ref cursor;
vc_value t_cur_ref;
begin
v_return :=' ';-- 初始化 v_return
v_sql:='select '||in_colname||' from '||in_tabname;
open vc_value for v_sql; loop
fetch vc_value into v_str;
exit when vc_value%NOTFOUND;
if length(v_return)=1 then
v_return := v_str;
else
v_return := v_return ||','||v_str;
end if;
end loop;
close vc_value;
return v_return;
end getvaluebytab;
/
return varchar2
is
v_sql varchar2(300);
v_str varchar2(50);
v_return varchar2(4000);
type t_cur_ref is ref cursor;
vc_value t_cur_ref;
begin
v_return :=' ';-- 初始化 v_return
v_sql:='select '||in_colname||' from '||in_tabname;
open vc_value for v_sql; loop
fetch vc_value into v_str;
exit when vc_value%NOTFOUND;
if length(v_return)=1 then
v_return := v_str;
else
v_return := v_return ||','||v_str;
end if;
end loop;
close vc_value;
return v_return;
end getvaluebytab;
/
解决方案 »
- 怎样循环取一个type表中的所有数据?
- [转载]金融危机企业内控凸显EPM价值
- 【偶结贴一向很快 ^_^】问个简单的存储过程代码----错在哪里?
- 初始化提供程序时发生错误,测试连接失败.发生了一个oracle错误,但无法从oracle中检索错误信息?
- 恳请众仙不吝赐教,双手合十,等待醍醐灌顶!!!-----SQL语句问题!
- Oracle9i中,要判断一个表是否存在,如果存在,就删除此表重新建立,没有就不删除重建,SQL该如何写?
- 高分求教多条变成一条的sql语句,答对立即给分
- 新手问题,oracle中的cross join和别名
- 在导出表空间时报了一个错?
- 表 XXX 发生了变化, 触发器/函数不能读它
- 自动派续 高人来
- 学习oracle
1.
fetch vc_value into v_str; 如果我想取两个字段应该怎么写?2.
v_return :=' ' if length(v_return)=1 then好像直接赋空值会取不到长度为0,是否必须这样设置一个空格才好判断?
fetch vc_value into v_str1,v_str2;
2.
如果v_return:='';
则length(v_return)会等于null,所以要初值为' '(一个空格)