怎样根据随便一个sql查询语句获得该语句查询到的字段名字和字段类型? oracle中,怎样根据随便一个sql查询语句获得该语句查询到的字段名字和字段类型?本人就1分了。请大家帮帮忙 多谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以顶下原帖,不必重发帖问的表的话比较好办,视图的话,好像没有返回字段类型的函数,和相关user表其实,比如有个语句select a from tt你可以获取表名tt和字段名a,然后select datatype from user_tables....那么select e from (select a e from tt)一样可以追踪获取原始的表名和字段名,就是麻烦点如果没有对字段进行类型转换,还是比较准确的这不是你理想的答案,就当是顶帖了 不太一样! 因为你说的那种 是要知道表明和字段名的 但我想问的是 这些都是不知道的 知道的只是个sql的查询语句 这个语句可能很复杂 我还需要再写个解析程序,去解析sql ?不太可能吧 就是想通过查询sql的结果集,获得所有查询到的字段和类型 刚那边有人不是给了你一个建议吗declare v_sqlquery varchar2(1024); --查询语句 v_sqlstring varchar2(1024); --动态SQLbegin v_sqlquery := 'select * from dual'; v_sqlstring := 'create table test as ' || v_sqlquery; execute immediate v_sqlstring; declare cursor cur_tabcol is select column_name, data_type from user_tab_columns where table_name = 'TEST'; begin v_sqlstring := ''; for c_tab in cur_tabcol loop v_sqlstring := v_sqlstring || c_tab.column_name || ' ' || c_tab.data_type || ','; end loop; end; dbms_output.put_line(v_sqlstring);end; 请教程序员学oralce,买什么书好呢? oracle 字段备注问题 有個難度很高的問題 有誰能幫我 給60點 这个索引怎么无论如何也不能生效呢? 动态创建表后,添加记录问题? 关于developer2000,form的一个小问题 求教各高关于Oracle的数据库连接和Update的多记录更新. dual 是个什么表 要SQL的查询结果集中的数据按照继承关系排序该怎么写。 新手向各位大虾求救:启动oracle 8.1.5的server manager的问题 数据导入问题 IMP 中参数SHOW 的使用 帮忙给看看
表的话比较好办,视图的话,好像没有返回字段类型的函数,和相关user表
其实,比如有个语句
select a from tt
你可以获取表名tt和字段名a,然后select datatype from user_tables....
那么select e from (select a e from tt)
一样可以追踪获取原始的表名和字段名,就是麻烦点
如果没有对字段进行类型转换,还是比较准确的这不是你理想的答案,就当是顶帖了
知道的只是个sql的查询语句 这个语句可能很复杂 我还需要再写个解析程序,去解析sql ?不太可能吧
就是想通过查询sql的结果集,获得所有查询到的字段和类型
v_sqlquery varchar2(1024); --查询语句
v_sqlstring varchar2(1024); --动态SQL
begin
v_sqlquery := 'select * from dual';
v_sqlstring := 'create table test as ' || v_sqlquery;
execute immediate v_sqlstring; declare
cursor cur_tabcol is
select column_name, data_type from user_tab_columns where table_name = 'TEST';
begin
v_sqlstring := '';
for c_tab in cur_tabcol
loop
v_sqlstring := v_sqlstring || c_tab.column_name || ' ' || c_tab.data_type || ',';
end loop;
end;
dbms_output.put_line(v_sqlstring);
end;