sqlplus中的變數定義和簡單使用.txt
在sqlplus中,如果執行以下命令:
select 'Type Specified: ',lower(nvl('&&report_type','html')) report_type from dual;
其實可以看做是 define report_type:=手工輸入內容的小寫形式。
比如我們輸入txt,然後執行define命令,結果為:
SQL> define
DEFINE _SQLPLUS_RELEASE = "000000000" (CHAR)
DEFINE _EDITOR = "PLSQLDev" (CHAR)
DEFINE _DATE = "2013-3-1" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 " (CHAR)
DEFINE _O_RELEASE = "000000000" (CHAR)
DEFINE _USER = "SCOTT" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "TEST" (CHAR)
DEFINE a = "" (CHAR)
DEFINE report_type = "txt" (CHAR)
用此值可以作為以後spool輸出時名稱的一部分。
如何輸入變數,比如當前的時間呢?
select to_char(sysdate,'yyyy-mm-dd-hh24-mi-ss') spool_name from dual;
SQL> column spool_name new_value spool_name
SQL> select to_char(sysdate,'yyyy-mm-dd-hh24-mi-ss') spool_name from dual;
SPOOL_NAME
-------------------
2013-03-01-17-51-32
SQL> define
DEFINE _SQLPLUS_RELEASE = "000000000" (CHAR)
DEFINE _EDITOR = "PLSQLDev" (CHAR)
DEFINE _DATE = "2013-3-1" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 " (CHAR)
DEFINE _O_RELEASE = "000000000" (CHAR)
DEFINE _USER = "SCOTT" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "TEST" (CHAR)
DEFINE SPOOL_NAME = "2013-03-01-17-51-32" (CHAR)
這時如果覺得已經定義的名稱不合理,可以重新等義:
SQL> select to_char(sysdate,'yyyy-mm-dd-hh24-mi-ss')||'.log' spool_name from dual;
SPOOL_NAME
-----------------------
2013-03-01-17-52-45.log
SQL> define
DEFINE _SQLPLUS_RELEASE = "000000000" (CHAR)
DEFINE _EDITOR = "PLSQLDev" (CHAR)
DEFINE _DATE = "2013-3-1" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 " (CHAR)
DEFINE _O_RELEASE = "000000000" (CHAR)
DEFINE _USER = "SCOTT" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "TEST" (CHAR)
DEFINE SPOOL_NAME = "2013-03-01-17-52-45.log" (CHAR)
用下面的“路徑+引數”的方式不能正常識別
SQL> spool c:\&spool_name;
Started spooling to c:\program files\plsql developer\&spool_name.lst
SQL> spool off;
Stopped spooling to c:\program files\plsql developer\&spool_name.lst
去掉路徑的情況下可以正常識別
SQL> spool &spool_name;
Started spooling to c:\program files\plsql developer\2013-03-01-17-52-45.log
SQL> spool off;
Stopped spooling to c:\program files\plsql developer\2013-03-01-17-52-45.log
使用完畢後需要undefine spool_name,避免對以後的操作造成影響。
SQL> undefine spool_name
SQL> define
DEFINE _SQLPLUS_RELEASE = "000000000" (CHAR)
DEFINE _EDITOR = "PLSQLDev" (CHAR)
DEFINE _DATE = "2013-3-1" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 " (CHAR)
DEFINE _O_RELEASE = "000000000" (CHAR)
DEFINE _USER = "SCOTT" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "TEST" (CHAR)
該引數只在當前視窗中有效,其他會話或視窗中都無效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-755073/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 變數的定義和使用變數
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- [20191204]sqlplus特殊定義導致的問題.txtSQL
- [20211220]sqlplus簡單計算器.txtSQL
- grafana如何使用定義的變數Grafana變數
- c+++變數宣告和定義C++變數
- lua語法-變數的定義與使用變數
- JavaScript中是如何定義私有變數的JavaScript變數
- C++教程-----C++變數型別和變數的定義C++變數型別
- 易優CMS模板標籤assign定義變數模板檔案中定義變數,可在其他標籤裡使用該變數變數
- c 語言中巨集定義和定義全域性變數的區別變數
- [20190126]從sqlplus執行結果返回bash shell變數.txtSQL變數
- react中什麼使用定義變數,需要使用useRef,什麼時候直接定義即可?React變數
- maven中properties標籤定義變數Maven變數
- shell中定義變數用雙引號和單引號以及不用引號的區別變數
- 簡單介紹nginx 變數使用Nginx變數
- <Python>識別符號、變數的定義與使用Python符號變數
- [20180813]sqlplus arraysize設定與SDU.txtSQL
- Shell程式設計-shell變數2-位置變數和預定義變數程式設計變數
- 模型的列表定義中,使用函式時如何定義引數?模型函式
- Shell中函式的定義和使用函式
- 01.變數定義變數
- [20230323]sqlplus #.txtSQL
- shell程式設計02——變數定義與使用程式設計變數
- JAVASE——資料型別,變數定義及使用Java資料型別變數
- vue定義全域性變數和全域性方法Vue變數
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- [20211220]記錄使用sqlplus的小問題.txtSQL
- [20180510]sqlplus array 和 opifch2.txtSQL
- Python定義全域性變數的用法Python變數
- 1、變數和簡單資料型別變數資料型別
- python:變數和簡單資料型別Python變數資料型別
- shell指令碼之變數定義規範及使用指令碼變數
- 在程式中定義多個同值不同名的變數變數
- 在 C 中引用匯編語言定義的 .globl 變數變數
- [20211108]sqlplus資料寬度顯示設定.txtSQL
- 在KEIL MDK中定義變數到固定地址變數
- 內部類中的成員的定義和使用
- 簡單理解JSONP的定義及其實現JSON