PSQL兼容SQL*PLUS
说明
兼容SQL*PLUS的var[iable]命令
定义绑定变量
使用VARIABLE创建绑定变量,指定绑定变量的数据类型,可选的给绑定变量一个初始值。支持的数据类型如下:
- NUMBER
- CHAR
- CHAR (n [CHAR | BYTE])
- NCHAR
- NCHAR (n)
- VARCHAR2 (n [CHAR | BYTE])
- NVARCHAR2 (n)
- BINARY_FLOAT
- BINARY_DOUBLE
支持的数据类型中只有字符类型可以指定typmod值,同时受nls_length_semantics参数影响。
CHAR或NCHAR类型长度的范围是12000,varchar2或nvarchar2的长度是132767,否则提示错误。
语法:
VAR[IABLE] [variable [type [=value]]]
绑定变量赋值
使用VARIABLE直接给某个绑定变量赋值。
语法:
VAR[IABLE] variable =value
显示绑定变量特征
使用VARIABLE加变量名来显示某个绑定变量的特性,VARIABLE什么也不跟表示打印所有绑定变量的特性信息。注意,这不是打印变量的值,只是显示绑定变量的名称和类型属性。VARIABLE后面要么没有绑定变量名字,要么只能有一个绑定变量名字,即不能选择显示某几个把绑定变量的特性,只能是显示一个或所有。
语法:
VAR[IABLE] [variable]
示例
--number类型
highgo=# variable x number;
highgo=# exec :x :=3.14;
PL/iSQL procedure successfully completed.
highgo=# print x;
X
-—–
3.14
--varchar2类型
highgo=# variable y varchar2(20) = ‘highgo database’
highgo=# print y;
Y
-—————-
highgo database
--修改x
highgo=# variable x = 3.16
highgo=# print x
X
-—–
3.16
--打印所有变量
highgo=# variable
variable x
datatype NUMBER
variable y
datatype VARCHAR2(20)
兼容SQL*PLUS的print命令
使用PRINT加变量名称列表来打印某几个绑定变量的值,如果PRINT忽略变量名列表,则打印所有绑定变量的值。
语法:
PRINT [variable …]
示例
--打印单个变量
highgo=# print x
X
-—–
3.16
--打印多个变量
highgo=# print x y
X
-—–
3.16
Y
-—————-
highgo database
--打印所有变量
highgo=# print
X
-—–
3.16
Y
-—————-
highgo database
兼容SQL*PLUS的exec[ute]命令
执行一个单个的PL/SQL语句,EXECUTE 命令通常按如下方式使用。
语法:
EXEC[UTE] statement
此处statement 表示一个PL/SQL语句。
例子:
如果变量:n已经由下面定义:
VARIABLE n NUMBER
以下 EXECUTE 命令为绑定变量 n 赋值:
EXECUTE :n := 1
PL/SQL procedure successfully completed.
兼容SQL*PLUS的系统变量
SERVEROUTPUT
该功能在V9.0.5及以后的版本中支持。
兼容Oracle中的系统变量SERVEROUTPUT,用于控制是否在屏幕上显示由 PL/iSQL 程序或存储过程通过 DBMS_OUTPUT.PUT_LINE 过程输出的文本。DBMS_OUTPUT行长度限制为32767字节。OFF表示不显示DBMS_OUTPUT.PUT_LINE的输出,ON表示显示输出。
语法:
SET SERVEROUT[PUT] {ON | OFF} |
说明:
设置为ON:启用DBMS_OUTPUT系统包功能,并且在客户端中显示输出。如果仅执行DBMS_OUTPUT.ENABLE,而客户端没有设置 SET SERVEROUTPUT ON,将看不到任何输出内容。
设置为OFF:禁用DBMS_OUTPUT系统包功能。清除缓存。
以下是一个简单的示例。
在psql中执行以下语句,结果显示如下:
BEGIN |
设置SERVEROUTPUT的值,put_line中的内容会打印到屏幕中:
--设置变量值 |