如何在另一个sql语句中使用select结果

时间:2016-10-05 14:18:50

标签: sql oracle sqlplus

在SQL * Plus脚本中,我想使用

的结果
select SUBSTR(file_name, 0, INSTR(file_name,'\',-1,1)) 
   into :oradataPath 
from dba_data_files where ROWNUM = 1;

在以下声明中:

CREATE TABLESPACE DEMO DATAFILE '&oradataPath\DEMO.DBF';

但SQL * Plus要求我提供oradataPath

的值

1 个答案:

答案 0 :(得分:2)

你可能需要动态的sql;例如:

declare
  vOradataPath varchar2(100);
  vSQL         varchar2(1000);
begin
  select SUBSTR(file_name, 0, INSTR(file_name,'\',-1,1)) 
   into vOradataPath 
  from dba_data_files
  where ROWNUM = 1;
  --
  vSQl := 'CREATE TABLESPACE DEMO DATAFILE ''' || vOradataPath || '\DEMO.DBF''';
  execute immediate vSQL;
end;