我希望在oracle
中使用sqlplus
和batch
文件创建新表。
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>
出了什么问题?
答案 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}}