我想创建一个批处理脚本,用于打开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
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
答案 0 :(得分:0)
@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:
sqlplus "%UN%/%PWD%@%ORCL%" @CreateUser.sql
我解决了这个问题。现在我的用户名有问题。我想从命令行参数传递CreateUser.sql中的用户名。
CREATE USER $ Username IDENTIFIED BY $ UserPassword DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE temp QUOTA无限用户;
我该怎么做?
@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%"
谢谢。