使用批处理文件在oracle / sqlplus中创建新表

时间:2013-08-24 23:46:36

标签: batch-file sqlplus

我希望在oracle中使用sqlplusbatch文件创建新表。

sqlplus user/password @create_tables.sql

成功

但那不是我想要的。我希望用户输入年份。 我的批处理文件如下:

@echo off

set /p year=__YEAR (YYYY)?
sqlplus user/password
create table data%year%
(Nama varchar2(25),
value number);
echo Successfull
pause

脚本停在这里

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Aug 25 06:07:26 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

出了什么问题?

1 个答案:

答案 0 :(得分:1)

在您的示例中,您已启动了一个交互式shell(带有SQL>提示符),当您退出时,批处理解释程序将运行create行作为新命令(并失败)。< / p>

如果没有其他方法可以执行此操作,您可以echo filename.sql %temp%中的@echo off set /p year=__YEAR (YYYY)? rem Set command in temp file : echo create table data%year% (Name varchar2(25), value number); > @%temp%\temp.sql rem Now run the above command : sqlplus user/password @%temp%\temp.sql echo Successfull pause 所需命令然后调用它。这里的语法可能不是100%,但我希望它是一个起点:

{{1}}