给你个范例:
专注于为中小企业提供网站设计制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业尉氏免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
CREATE OR REPLACE FUNCTION f_jax_str2tab(p_str IN VARCHAR2,
p_sep varchar2 default ','
) RETURN type_jax_varc2tab IS
/******************************************************************
Ver1.0 Created by jaxzhang on 2009-06-08
把字符串(1*2*3*4*5)转换为内存表形式
create or replace type type_jax_varc2tab is table of varchar2(2000);
测试用例:SELECT * FROM TABLE(f_jax_str2tab('1*2*3*4*5','*'));
******************************************************************/
v_str varchar2(2000);
v_cnt NUMBER ;
v_numtab type_jax_varc2tab := type_jax_varc2tab(); --返回内存表
BEGIN
select decode(substr(p_str,-1),p_sep,p_str,p_str || p_sep) into v_str from dual;
select length(v_str) - length(REPLACE(v_str, p_sep)) into v_cnt from dual;
FOR i IN 1 .. v_cnt LOOP
v_numtab.EXTEND;
v_numtab(i) := substr(v_str, 1, instr(v_str, p_sep) - 1);
v_str := substr(v_str, instr(v_str,p_sep) + 1);
END LOOP;
RETURN v_numtab;
EXCEPTION
WHEN OTHERS THEN
v_numtab.DELETE;
END;
利用游标将查询结果插入到一个表里!
或者存储到定义的数组中!
返回结果集合成什么样?
一条记录直接输出?
你可以把返回的结果插到一张表里,然后去看不就行了吗?
你可以把每次查询,改成每次插入一张表里,回过头再看结果集
例如,数据库中user_tables表储存用户所有的表,如果想把这些表名集合加载到listbox中,以下代码可以实现:
private void GetTableName()
{
OracleConnection conn=new OracleConnection("data source=dbname;User Id=scott;Password=scott;");//创建连接串
conn.Open();
string sql="select table_name from user_tables";
OracleCommand cmd=new OracleCommand(sql,conn);
OracleDataAdapter odr=new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
odr.Fill(dt);
for(int i=0;idt.Rows.Count;i++)
{
string item=dt.Rows[i][0].ToString();//获取数据库中第i行第一列的值
listbox.Items.Add(item);//添加到listbox中
}
conn.Close();
}