怎样根据随便一个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; ???请问如何释放磁盘空间??? Oracle的blob字段问题 oracle 恢复 9i标准版可以用来做双机吗? ORACLE8I启动表分区功能需要什么包? 请教一条SQL语句,两个表联合查询的 Oracle Enterprise Manager Console 建用户后有问题。 如何将再8.1.7上sqlplus导出的dmp导入8.1.6数据库里? Redhat Lunix下oracle 9i的安装问题,很很急!!穷其所有分数>4000求解!! 关于触发器的问题,大家帮帮忙 数据导入问题 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;