怎样把一个表的所有字段名都查出来,并用“,”隔开
解决方案 »
- 数据抽样检查,抽样量大小的选择
- %……%……%……把查询结果按照格式合并到一个字段%……%……%……
- 关于JDBC的连接(ORACLE)
- 多用户并发执行buffer cache该如何调优?
- oracle8i数据库导入到9i的问题和疑惑
- 大数据量数据库设计的问题
- 请问在SOLARIS8上安装ORACLE9.2.0.1为什么中文字符显示的总是问号
- job问题
- 基于Midas的三层结构程序中,出现"Value of 'datafield'is out of range"错误",什么原因?如何修改?
- 谁能解决这个问题(在winXP Pressional下安装Oracle9i遇到的)?
- 关于快速查询图形数据的Oracle数据库设计的请教
- 如何把用户所属的表的记录数一次统计出来?
然后用ultraeditor或excel等工具进行编辑替换可以得到2.用pl/sql developer或者toad可以导出
Name Null? Type
----------------------------------------------------------------------------------- -------- ------
TNUM NUMBER(38)
TNAME VARCHAR2(20)
SEX CHAR(1)
DEPT VARCHAR2(20)
TITLE VARCHAR2(20)
T_ID NUMBERcrm@151>select max(substr(SYS_CONNECT_BY_PATH(COLUMN_NAME, ','), 2)) col from (
2 select * from user_tab_columns where table_name='TEACHER')
3 start with column_id=1
4 connect by column_id=rownum;COL
----------------------------------------------------------------------------------------------------
TNUM,TNAME,SEX,DEPT,TITLE,T_ID如果是要得到上面的结果的话spool e:\column_name.txt; --后跟你要保存的文件的路径
select max(substr(SYS_CONNECT_BY_PATH(COLUMN_NAME, ','), 2)) col from (
select * from user_tab_columns where table_name='TEACHER')
start with column_id=1
connect by column_id=rownum;
spool off;
8i中可以如下操作:SET ECHO OFF
SET SERVEROUTPUT ON SIZE 10000
CREATE OR REPLACE PROCEDURE COLS (TABLE_NAME IN VARCHAR2) AUTHID CURRENT_USER
IS
theOWNER VARCHAR2(30);
theTABLE VARCHAR2(30);
str VARCHAR2(4000):='';
BEGIN
IF INSTR(TABLE_NAME,'.')>0 THEN
theOWNER:=UPPER(SUBSTR(TABLE_NAME,1,INSTR(TABLE_NAME,'.')-1));
theTABLE:=UPPER(SUBSTR(TABLE_NAME,INSTR(TABLE_NAME,'.')+1));
ELSE
theOWNER:=USER;
theTABLE:=UPPER(TABLE_NAME);
END IF; FOR CUR IN(
SELECT COLUMN_NAME FROM ALL_TAB_COLS WHERE OWNER=theOWNER AND TABLE_NAME=theTABLE ORDER BY COLUMN_ID
)LOOP
str:= str || CUR.COLUMN_NAME || ',';
END LOOP; IF str IS NOT NULL THEN
str:=SUBSTR(str,1,LENGTH(str)-1);
DBMS_OUTPUT.PUT_LINE(str);
END IF;
END COLS;
/--测试结果SQL> EXECUTE COLS('A');
ID,TTPL/SQL 过程已成功完成。