sqlplus中define定義的常量和variable定義的變數的區別!
C:>sqlplus xys/manager
SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 4月 1 14:03:00 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> define
DEFINE _DATE = "01-4月 -08" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "db11" (CHAR)
DEFINE _USER = "XYS" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0.
6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (
CHAR)
DEFINE _O_RELEASE = "1101000600" (CHAR)
SQL> select *from tt;
ID NAME
---------- ----------
1 a
2 a
3 "abc"
SQL> define a
SP2-0135: 符號 a 未定義
SQL> define a=1
SQL> define
DEFINE _DATE = "01-4月 -08" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "db11" (CHAR)
DEFINE _USER = "XYS" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0.
6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (
CHAR)
DEFINE _O_RELEASE = "1101000600" (CHAR)
DEFINE A = "1" (CHAR)
--透過上面顯示define定義的應該是字元(串)常量。
SQL> select * from tt where id=&a;
原值 1: select * from tt where id=&a
新值 1: select * from tt where id=1
ID NAME
---------- ----------
1 a
SQL> select * from tt where id=&&a;
原值 1: select * from tt where id=&&a
新值 1: select * from tt where id=1
ID NAME
---------- ----------
1 a
SQL> define b='a';
SQL> define
DEFINE _DATE = "01-4月 -08" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "db11" (CHAR)
DEFINE _USER = "XYS" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0.
6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (
CHAR)
DEFINE _O_RELEASE = "1101000600" (CHAR)
DEFINE A = "1" (CHAR)
DEFINE B = "a" (CHAR)
--如果是字元型別那麼在引用時別忘了加上單引號,另外透過define定義之後在引用時不需要輸入了。
SQL> select * from tt where name=&&b;
原值 1: select * from tt where name=&&b
新值 1: select * from tt where name=a
select * from tt where name=a
*
第 1 行出現錯誤:
ORA-00904: "A": 識別符號無效
SQL> select * from tt where name='&&b';
原值 1: select * from tt where name='&&b'
新值 1: select * from tt where name='a'
ID NAME
---------- ----------
1 a
2 a
SQL> select * from tt where name='&b';
原值 1: select * from tt where name='&b'
新值 1: select * from tt where name='a'
ID NAME
---------- ----------
1 a
2 a
--執行sql時進行了替換
SQL> select sql_text from v$sql where sql_text like 'select * from tt where name
=%';
SQL_TEXT
--------------------------------------------------------------------------------
select * from tt where name=1
select * from tt where name='a'
SQL>
--==============================================
--variable定義的是繫結變數
SQL> variable a number;
SQL> print a;
A
----------
SQL> exec :a:=1;
PL/SQL 過程已成功完成。
SQL> select * from tt where id=:a;
ID NAME
---------- ----------
1 a
SQL> select sql_text from v$sql where sql_text like 'select * from tt where id=:
a%';
SQL_TEXT
--------------------------------------------------------------------------------
select * from tt where id=:a
SQL> print a;
A
----------
1
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1001741/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- define巨集定義和const常量定義之間的區別
- PHP 定義常量 define 和 const的區別PHP
- Oracle變數定義的三種方式(define,variable,declare)Oracle變數
- php定義常量方法的區別PHP
- 在oracle sqlplus中通過new_value及define傳遞或定義變數variableOracleSQL變數
- c 語言中巨集定義和定義全域性變數的區別變數
- php變數的型別是如何轉換的?常量如何定義?系統常量是如何定義的?PHP變數型別
- C/C++定義全域性變數/常量幾種方法的區別C++變數
- sqlplus中的變數定義和簡單使用.txtSQL變數
- [PHP]常量定義: const和define區別和運用; 附constant解釋PHP
- 變數的定義和使用變數
- 宏定義define的用法
- C++中巨集定義#define的用法C++
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- C++教程-----C++變數型別和變數的定義C++變數型別
- vue 常量定義和使用Vue
- sqlplus變數定義, 呼叫過程SQL變數
- JavaScript中是如何定義私有變數的JavaScript變數
- 巨集定義和列舉型別的區別型別
- C語言巨集定義中#define中的井號#的使用C語言
- shell 中怎麼定義常量
- 059.Define 巨集定義的巢狀巢狀
- PHP核心定義變數的方式PHP變數
- 預定義的SQL*Plus變數SQL變數
- grafana如何使用定義的變數Grafana變數
- C++巨集定義#defineC++
- shell中定義變數用雙引號和單引號以及不用引號的區別變數
- SAP UI5和angular裡的常量定義UIAngular
- 類的靜態成員變數和普通成員變數該怎樣去區別定義變數
- COM、COM+和DCOM的定義和區別
- c+++變數宣告和定義C++變數
- angular中定義全域性變數及全域性變數的使用Angular變數
- Javascript中兩種方式定義函式的區別JavaScript函式
- CSS中定義CLASS時,中間有空格和沒空格的區別CSS
- <Python>識別符號、變數的定義與使用Python符號變數
- 模型的列表定義中,使用函式時如何定義引數?模型函式
- 如何使方法行數達到最優、常量與變數如何優雅的定義?變數
- JavaScript 常量定義詳解JavaScript