我继承的一些脚本会在脚本开头盲目地调用SET FEEDBACK OFF
或SET ECHO OFF
,然后在脚本末尾将它们设置为ON
或OFF
。我想修改这些脚本以确定在脚本运行之前设置了什么值,并在脚本完成时将环境设置回该值。
如何在脚本完成后查询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
答案 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本身)。