动态sql语句动态处理输出列数

时间:2014-02-07 04:09:02
【文件属性】:
文件名称:动态sql语句动态处理输出列数
文件大小:1KB
文件格式:SQL
更新时间:2014-02-07 04:09:02
动态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

网友评论

  • l_ename iplat.t_es_user.name%type :='admin'; l_empno iplat.t_es_user.display_name%type; 这两句不清晰啊