- 博客(0)
- 资源 (2)
- 收藏
- 关注
动态sql语句动态处理输出列数
可以自动处理查询语句中的列数
--1.打开游标
l_cursor := dbms_sql.open_cursor;
--2.解析游标
dbms_sql.parse(l_cursor,'select bus_type as 流程名称,st_center as 结算中心,st_department as 编制部门,bus_desc 流程描述 from xact.tafct23',dbms_sql.native);
dbms_sql.describe_columns(l_cursor,l_colcnt,l_col_tab);
--3.定义返回列
for i in l_col_tab.first .. l_col_tab.last loop
dbms_sql.define_column(l_cursor,
i,
l_col_tab(i).col_name,
l_col_tab(i).col_max_len);
--dbms_output.put(l_col_tab(i).col_name || '(' || l_col_tab(i).col_max_len || ') ');
end loop;
DBMS_OUTPUT.new_line;
--4.绑定变量
--dbms_sql.bind_variable(l_cursor,':ename',l_ename);
--5.执行
l_retval := dbms_sql.execute(l_cursor);
--6.取数
--6.1取列名
for i in 1..l_colcnt loop
dbms_output.put(l_col_tab(i).col_name);
dbms_output.put(' ');
end loop;
while dbms_sql.fetch_rows(l_cursor)>0 loop
2011-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人