SQLPLUS BAT 文件

Posted

技术标签:

【中文标题】SQLPLUS BAT 文件【英文标题】:SQLPLUS BAT File 【发布时间】:2012-05-21 16:05:18 【问题描述】:

我有一个在 oracle 上运行脚本的 BAT 文件:

sqlplus myuser/mypassword@mydatabase @C:\runthisfile.sql

我想将此分发给其他用户(不一定知道如何修改 BAT 文件)。

我希望 dos 提示要求用户输入他们的用户名和密码(显然我不想给他们我的连接详细信息)。尝试了所有类型的组合,但最终我得到了SQL>.....

我被难住了!

【问题讨论】:

【参考方案1】:

您可以使用带有/P 参数的SET 命令,以便在批处理文件运行期间提示用户输入文本,例如:

SET /P variable=Please enter text

这将在返回之前用他们输入的任何内容填充variable

@ECHO OFF
SET /P uname=Username:
SET /P pass=password:

这是一个简单的程序,它首先会提示输入用户名,然后是密码。 然后,您应该能够将其作为参数传递给 sqlplus:

sqlplus %uname%/%pass%@mydatabase @C:\runthisfile.sql

【讨论】:

【参考方案2】:

关于 SQLPlus 停止,什么都不做:

有时 SQLPlus 以 ... 结束,表示正在等待更多内容。

尝试在您的 SQL 文件末尾添加“/”(不带引号)以执行它。

希望对你有帮助……

【讨论】:

【参考方案3】:

这是非常简单的代码,无需手动输入用户名和密码即可打开SQLPLUS。

sqlplus -L 用户名/密码

例如:sqlplus -L Rak4ak@sun64/rk4

为了理解:

sqlplus [ [] [登录 | /nolog] [] ]

是:[-C] [-L] [-M ""] [-NOLOGINTIME] [-R] [-S]

-C <version>   Sets the compatibility of affected commands to the
               version specified by <version>.  The version has
               the form "x.y[.z]".  For example, -C 10.2.0
-L             Attempts to log on just once, instead of
               reprompting on error.
-M "<options>" Sets automatic html markup of output.  The options
               have the form:
               HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text]
               [ENTMAP ON|OFF] [SPOOL ON|OFF] [PRE[FORMAT] ON|OFF]
-NOLOGINTIME   Don't display Last Successful Login Time.
-R <level>     Sets restricted mode to disable SQL*Plus commands
               that interact with the file system.  The level can
               be 1, 2 or 3.  The most restrictive is -R 3 which
               disables all user commands interacting with the
               file system.
-S             Sets silent mode which suppresses the display of
               the SQL*Plus banner, prompts, and echoing of
               commands.

是:[/][@] | / [AS SYSDBA |系统管理员 |系统管理 |系统备份 |系统开发 | SYSKM] [版本=值]

Specifies the database account username, password and connect
identifier for the database connection.  Without a connect
identifier, SQL*Plus connects to the default database.

The AS SYSDBA, AS SYSOPER, AS SYSASM, AS SYSBACKUP, AS SYSDG,
and AS SYSKM options are database administration privileges.

【讨论】:

以上是关于SQLPLUS BAT 文件的主要内容,如果未能解决你的问题,请参考以下文章

SQLPLUS BAT 文件

通过 .bat 执行 Sqlplus 总是返回 0

bat执行sqlplus语句,省去@xx.sql过程

获取 sqlplus 的结果并放入脚本 .bat 上的变量中

记录昨天用sqlplus批量刷sql的脚本

DOS/sqlplus“句柄无效”错误?