Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在批处理文件中编写CreateUser.sql脚本_Windows_Oracle_Batch File_Cmd - Fatal编程技术网

Windows 在批处理文件中编写CreateUser.sql脚本

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

我想创建一个批处理脚本,用于打开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
我解决了这个问题。现在我对用户的名称有一个问题。我想将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%"