================================================================================
对于sqlplus中的环境变量,可以保存到一个文件中,该文件在启动sqlplus时自动由sqlplus调用,从而实现环境变量的自动设置,具体设置方法如下
================================================================================
* 设置系统环境变量 SQLPATH
* 创建一个文本文件命名为 login.sql 放置在SQLPATH指定的目录下
* login.sql文件中可以设定符合sqlplus要求的环境变量
login.sql文件内容可能如下
define _editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 100
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr( global_name, 1, decode( dot, 0, length(global_name),dot-1) ) global_name
from (select global_name, instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on
================================================================================
在sqlplus中调用sql文件时,可以通过命令行参数进行传参操作
================================================================================
* vi test1.sql #编辑一个简单的测试sql文件
set echo off
set verify on
define S="&1"
select '&S' from dual;
set echo on
* 在sqlplus中调用test1.sql并进行传参操作
levin@LEVIN1> @test1 abc
levin@LEVIN1> set echo off
old 1: select '&S' from dual
new 1: select 'abc' from dual
'AB
---
abc
================================================================================
在sqlplus中定义系统环境变量。主要用于将DB中的值传出到操作系统中
================================================================================
语法
* define v_name=value
* column field_alais_name new_val v_name
* vi test2.sql
set verify on
column f1 new_val V
select banner f1 from v$version;
define S="&V"
set verify off
* 在sqlplus中调用test1.sql
levin@LEVIN1> @test2
levin@LEVIN1> set verify on
levin@LEVIN1> column f1 new_val V
levin@LEVIN1>
levin@LEVIN1> select banner f1 from v$version;
F1
--------------------------------------------------------------------------------
Oracle Database 11g Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
5 rows selected.
levin@LEVIN1>
levin@LEVIN1> define S="&V"
levin@LEVIN1>
levin@LEVIN1> set verify off
levin@LEVIN1> !echo &V
NLSRTL Version 11.2.0.1.0 - Production
levin@LEVIN1> !echo &S
NLSRTL Version 11.2.0.1.0 - Production
---END