2016-02-18 32 views
-1

我想从400个表中提取数据。如何使用sqlplus通过单个命令提取数据。使用单个命令从oracle中的表中提取数据

例如表名

EMPLOYEE 
STUDENT 
..... 
SCHOOL_NAME 

例如表结构

EMPLOYEE (NAME VARCHAR(255), AGE VARCHAR(255)) 
STUDENT (NAME VARCHAR(255), AGE VARCHAR(255), SEX VARCHAR(255)) 
SCHOOL_NAME (SCHOOL VARCHAR(255), LOCATION VARCHAR(255)) 

如果我使用的是分隔符格式的sqlplus中,这将是这么多的命令,我已经建立,如果还有另一个简单的命令,请分享..

注意:每张表有不同的列名

+0

能否请您发表您的表的scructure,你需要提取的字段,条件申请? – Aleksej

+0

所有的表名都是相同的,但带有_ +1? (name_1,name_2 ...)或他们不必连续 – sagi

+0

嗨@Aleksej每个表都有不同的列名... –

回答

2

将选择语句假脱机到一个文件,然后调用该脚本。事情是这样的

spool c:\temp\script.sql 
select 'select * from ' || table_name || ';' 
    from user_tables; 

@@c:\temp\script.sql 

当然,你必须更改设置为标题,LINESIZE中,等

+0

这可能不是那么简单,取决于数据的使用方式。如果字符串值包含分隔符,可能需要用双引号括起来;字符串值中的单引号可能*必须被转义;列之间可能不需要空格;等等 –

+0

嗨@Shriram如果使用单个假脱机,如果有400个表,我已经创建了400个表的脚本.. –

+0

是一个问题吗?我无法理解你想说什么。您可以创建单个脚本或多个脚本,也可以在同一个SQL脚本中包含多个选择语句。 Sqlplus将一个接一个地运行。它取决于你想要输出的内容以及你想要它在单个文件还是多个文件中。这是一种脚本语言的方式,所以你可以做很多事情。 –

相关问题