!set plsqlUseSlash true BEGIN DBMS_OUTPUT.put_line ('Hello World') END; /
复制
输出结果为:
output |
---|
Hello World |
标量类型的含义是存放单个值。Inceptor 中支持的标量类型为 INT/STRING/DOUBLE 等 Inceptor 中所有支持的数据类型。具体内容可参考《数据类型对应表》。
在 Inceptor 中 STRING 既可以是字符串常量,也可以是字符串变量。对于字符串常量,要用单引号引起来;对于字符串变量,要在 PL/SQL 语句块中的 DECLARE 部分声明。
!set plsqlUseSlash true BEGIN DBMS_OUTPUT.put_line ('Hello World') END; /
复制
输出结果为:
output |
---|
Hello World |
!set plsqlUseSlash true DECLARE -- 定义一个 STRING 类型的变量为 l_message。 l_message STRING BEGIN -- 给变量 l_message 赋值。 l_message:= 'Hello World' -- 输出变量 l_message 的值。 DBMS_OUTPUT.put_line (l_message) END; /
复制
输出结果为:
output |
---|
Hello World |
在 Inceptor 中 INT 为整数类型,可以直接使用一些整数,也可以在 PL/SQL 语句块的 DECLARE 部分声明一个 INT 类型的变量,用于存放 INT 类型的数据。
!set plsqlUseSlash true BEGIN DBMS_OUTPUT.put_line (100) END; /
复制
输出结果为:
output |
---|
100 |
!set plsqlUseSlash true DECLARE -- 定义一个 INT 类型的变量为 l_int l_int int BEGIN -- 给变量 l_int 赋值 l_int:= 1000 -- 输出变量 l_int 的值 DBMS_OUTPUT.put_line (l_int) END; /
复制
输出结果为:
output |
---|
1000 |
此外,Inceptor中所有支持的数据类型都可以在 PL/SQL 语句块的 DECLARE 部分中声明,此处不再赘述。
使用 %TYPE 属性,可以声明一个变量,其数据类型与已经存在的变量,记录类型,表变量类型或者数据表的字段的数据类型相同,但新声明的变量不会继承已经存在的变量的值。
!set plsqlUseSlash true DECLARE name string := 'JoHn SmItH' upper_name name%TYPE := UPPER(name) lower_name name%TYPE := LOWER(name) BEGIN DBMS_OUTPUT.PUT_LINE ('name: ' || name) DBMS_OUTPUT.PUT_LINE ('upper_name: ' || upper_name) DBMS_OUTPUT.PUT_LINE ('lower_name: ' || lower_name) END; /
复制
输出结果为:
output |
---|
name: JoHn SmItH |
upper_name: JOHN SMITH |
lower_name: john smith |
!set plsqlUseSlash true DECLARE v_acc_num transactions.acc_num%TYPE v_trans_id transactions.trans_id%TYPE v_price transactions.price%TYPE BEGIN SELECT acc_num INTO v_acc_num FROM transactions WHERE stock_id='AA7105670'; SELECT trans_id INTO v_trans_id FROM transactions WHERE trans_time='20140105100520'; v_price:='11.11' DBMS_OUTPUT.PUT_LINE('acc_num:'|| v_acc_num) DBMS_OUTPUT.PUT_LINE('trans_id:'|| v_trans_id) DBMS_OUTPUT.PUT_LINE('price:'|| v_price) END; /
复制
输出结果为:
output |
---|
acc_num:6513065 |
trans_id:943197522 |
price:11.11 |
使用 %ROWTYPE 属性,可以声明一个记录型的变量,其记录型变量的分量名和类型与表/视图/游标中字段名和类型均相同,同样,记录型变量不会继承表/视图/游标中各个字段的值。
如果相应的表/视图发生变动,如表中新增字段或有字段被删除,则所声明的变量的也会发生相应的变化。
!set plsqlUseSlash true DECLARE trans transactions%ROWTYPE BEGIN SELECT * INTO trans FROM transactions WHERE stock_id='AA7105670'; DBMS_OUTPUT.PUT_LINE('price:'||trans.price) DBMS_OUTPUT.PUT_LINE('trans_time:'||trans.trans_time) DBMS_OUTPUT.PUT_LINE('trans_type:'||trans.trans_type) END; /
复制
输出结果为:
output |
---|
price:12.13 |
trans_time:20140105100520 |
trans_type:b |
复合类型,即内部存在分量的数据类型,主要有 Records 和 Collections,需要用户自己去定义该类型,具体内容可参考后文的 Records 和 Collections 章节。