首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使SQL*Plus脚本退出

使SQL*Plus脚本退出
EN

Stack Overflow用户
提问于 2019-01-11 20:08:10
回答 2查看 2K关注 0票数 1

我想使用powershell自动运行目录中的一些SQL*Plus脚本。我可以读取目录,但是当我尝试执行脚本时,脚本终止了,但没有退出powershell并转到下一个脚本。

如何使powershell退出SQL*Plus并自动转到下一个脚本,而无需通过在每个脚本的末尾显式添加退出来修改脚本?

下面是以最简单的形式演示的powershell脚本

代码语言:javascript
运行
复制
$Filename=Get-childitem "D:\test\TestSQL" -Filter *.sql | Select -ExpandProperty name
foreach ($f in $Filename)
{
  sqlplus -L -S <username>/<password>@<sid> @$f
}

该目录理论上可以包含数百个脚本,在每个脚本中添加退出命令是不可行的。我想强迫SQL*Plus在完成每个脚本之后退出,然后转到下一个脚本。

有可能这样做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-13 10:57:35

您可以将单词exit导入SQL*Plus命令行。例如,如果demo.sql由以下内容组成:

代码语言:javascript
运行
复制
prompt This is my demo script

然后你可以这样称呼它:

代码语言:javascript
运行
复制
echo exit | sqlplus william/w @demo.sql

输出:

代码语言:javascript
运行
复制
Y:\SQL>echo exit | sqlplus william/w @demo.sql

SQL*Plus: Release 12.2.0.1.0 Production on Sun Jan 13 10:47:13 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Sun Jan 13 2019 10:46:03 +00:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


This is my demo script
SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Y:\SQL>

或使用-s (静音)选项来压制横幅等:

代码语言:javascript
运行
复制
Y:\SQL>echo exit | sqlplus -s william/w @demo.sql

This is my demo script

Y:\SQL>

在Windows 10上使用SQL*Plus 12.2进行测试。

(从https://serverfault.com/q/87035/352734上看,它在Windows和Linux中都能使用。)

您还可以考虑避免处理用户名和密码的选项,例如:https://dba.stackexchange.com/a/109170/103604

票数 2
EN

Stack Overflow用户

发布于 2019-01-12 07:22:22

我并不熟悉plsql,但据我所知,sqlplus是一个执行plsql脚本的exe。如果PowerShell没有继续执行下一个脚本,那是因为sqlplus没有退出。稍微谷歌一下就会发现,结束pssql脚本的正确方法是在最后一行中放置一个正斜杠:

代码语言:javascript
运行
复制
/

据我所知,这告诉sqlplus执行上面的所有内容,如果没有sqlplus,sqlplus不会终止。

你说:

在每个脚本中添加退出命令是不可行的。

但据我所知,这正是你必须做的。

幸运的是,PowerShell也可以在这方面提供帮助。只需导航到包含脚本的目录并执行以下操作:

代码语言:javascript
运行
复制
dir *.sql | add-content -value "/"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54153384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档