在脚本期间备份SQL Plus环境

时间:2010-10-22 18:00:57

标签: oracle sqlplus

我继承的一些脚本会在脚本开头盲目地调用SET FEEDBACK OFFSET ECHO OFF,然后在脚本末尾将它们设置为ONOFF 。我想修改这些脚本以确定在脚本运行之前设置了什么值,并在脚本完成时将环境设置回该值。

如何在脚本完成后查询SQL Plus环境值,存储它们并恢复它们?

我想到的一种方法:

SPOOL env-backup.sql
SHOW ECHO FEEDBACK TIMING

REM ...

@env-backup.sql

但是

  • SHOW ECHO FEEDBACK TIMING吐出无法直接执行(ECHO OFF vs SET ECHO OFF
  • 我宁愿不创建另一个文件(或对数据库的任何修改)

不一定是相关的,但我在Windows上使用Oracle XE(10g)的SqlPlus

4 个答案:

答案 0 :(得分:7)

SQL * Plus只有STORE命令。它输出一个包含所有环境设置的文件。执行该文件将恢复这些设置。在SQL * Plus提示符下键入“HELP STORE”以获取更多信息。

答案 1 :(得分:1)

您可能对those scripts

感兴趣

答案 2 :(得分:1)

如果希望每个SQL独立运行,可以使用HOST命令调用它们。也就是说,对于行为不当的脚本,请调用HOST SQLPLUS username/password@tnsname @script.sql,它将在新进程中运行。

答案 3 :(得分:0)

为什么不在提供的glogin.sql脚本中输入所需的连接值?

通常在%ORACLE_HOME%\ sqlplus \ admin

中找到

来自我的glogin.sql:

--
-- Copyright (c) 1988, 2005, Oracle.  All Rights Reserved.
--
-- NAME
--   glogin.sql
--
-- DESCRIPTION
--   SQL*Plus global login "site profile" file
--
--   Add any SQL*Plus commands here that are to be executed when a
--   user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
--   This script is automatically run
--
set pagesize 60
set linesize 500
set wrap off

然后在运行任何改变环境的脚本后重新连接(或运行@ glogin.sql本身)。