Windows 在批处理文件中编写CreateUser.sql脚本
我想创建一个批处理脚本,用于打开CMD并连接到Oracle Server(使用SQLPlus),其中包含用户、密码和SID的命令行参数 连接后,我想运行一个脚本。在本例中,Windows 在批处理文件中编写CreateUser.sql脚本,windows,oracle,batch-file,cmd,Windows,Oracle,Batch File,Cmd,我想创建一个批处理脚本,用于打开CMD并连接到Oracle Server(使用SQLPlus),其中包含用户、密码和SID的命令行参数 连接后,我想运行一个脚本。在本例中,@CreateUser.sql: CREATE USER TEST IDENTIFIED BY TEST DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON USERS; 但它不起作用 @echo off @echo off setloc
@CreateUser.sql
:
CREATE USER TEST IDENTIFIED BY TEST
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON USERS;
但它不起作用
@echo off
@echo off
setlocal
start cmd.exe /k "net use"
if "%~1"=="" goto :error empty 1
if "%~2"=="" goto :error empty 2
if "%~3"=="" goto :error empty 3
set "username=%~1"
if not exist "%username%\" goto :error not exist 1
set "password=%~2"
if not exist "%password%\" goto :error not exist 2
set "SID=%~3"
if not exist "%SID%\" goto :error not exist 3
sqlplus "%username%"/"%password%"@"%SID%" @CreateUser.sql
goto :eof
:error
echo wrong parameters %*
goto :eof
我解决了这个问题。现在我对用户的名称有一个问题。我想将CreateUser.sql中的用户名作为命令行参数传递
创建由$UserPassword标识的用户$Username默认表空间用户临时表空间临时配额不受用户限制
我该怎么做
@echo off
@echo off
setlocal
set /P ORCL=Enter server or service_name:
set /P UN=Enter DB User:
set /P PWD=Enter password for DB user:
set /P User=Enter name for user:
set /P Password=Enter password for user:
sqlplus "%UN%/%PWD%@%ORCL%" @CreateUser.sql "%User%" "%Password%"
谢谢。有关sqlplus语法,请参阅。在CreateUser.sql中,&1
将是%User%
,&2
将是%Password%
。
@echo off
@echo off
setlocal
set /P ORCL=Enter server or service_name:
set /P UN=Enter DB User:
set /P PWD=Enter password for DB user:
set /P User=Enter name for user:
set /P Password=Enter password for user:
sqlplus "%UN%/%PWD%@%ORCL%" @CreateUser.sql "%User%" "%Password%"