PL/SQL变量的使用
2017-07-11 00:00
169 查看
1.变量声明语法结构
2.常量声明语法结构
3.%TYPE 和 %ROWTYPE 引用已存在的类型
4.记录类型
普通的变量声明
记录类型变量
%ROWTYPE
PL/SQL索引表类型(关联数组)
VARRAY变长数组
variable_name datatype -- 变量名 类型 [ [NOT NULL] -- 非空约束 {:= | DEFAULT} expression -- 当使用NOT NULL属性时,大括号必填,二选一 -- ':=' 表示赋值; DEFAULT表示默认值 -- expression 表示变量存储的值,可以是表达式 ];
2.常量声明语法结构
constant_name CONSTANT datatype [NOT NULL] {:= | DEFAULT} expression;
3.%TYPE 和 %ROWTYPE 引用已存在的类型
4.记录类型
TYPE type_name IS RECORD ( field_name datatype [ [NOT NULL] {:= | DEFAULT} expression ] [,field_name datatype [[NOT NULL]{:= | DEFAULT} expression]]... ) ;
普通的变量声明
DECLARE v_produtcid productinfo.productid%TYPE; --产品id v_productname VARCHAR2(20); --产品名称 v_productprice NUMBER(8,2); --产品价格 v_quantity NUMBER(10); --数量 v_desperation CONSTANT v_productname%TYPE:='测试'; --测试 v_date DATE := SYSDATE; BEGIN SELECT productid,productname,productprice,quantity INTO v_productid,v_productname,v_productprice,v_quantity FROM productinfo WHERE produtid = '001'; DBMS_OUTPUT.PUT_LINE('v_produtid = ' || v_produtid); END;
记录类型变量
DECLARE TYPE product_res IS RECORD ( v_productid productinfo.productid%TYPE; --产品id v_productname VARCHAR2(20); --产品名称 v_productprice NUMBER(8,2); --产品价格 ); v_product product_res; --记录类型变量 BEGIN SELECT productid,productname,productprice INTO v_product FROM productinfo WHERE produtid = '001'; DBMS_OUTPUT.PUT_LINE('v_produtid = ' || v_product.v_produtid); END;
%ROWTYPE
DECLARE v_product productinfo%ROWTYPE; --记录类型变量 BEGIN SELECT * INTO v_product FROM productinfo WHERE produtid = '001'; DBMS_OUTPUT.PUT_LINE('v_produtid = ' || v_product.v_produtid); END;
PL/SQL索引表类型(关联数组)
TYPE type_name IS TABLE OF { column_type| variable_name%TYPE | table_name.column_name%TYPE | table_name%ROWTYPE } [NOT NULL] INDEX BY {PLS_INTEGER|BINARY_INTEGER|VARCHAR2(v_size)}
DECLARE TYPE prodt_tab_fst IS TABLE OF productinfo%ROWTYPE --%ROWTYPE INDEX BY BINARY_INTEGER; --BINARY_INTEGER TYPE prodt_tab_sec IS TABLE OF VARCHAR2(8) INDEX BY PLS_INTEGER; --PLS_INTEGER v_prt_row prodt_tab_fst; v_prt prodt_tab_sec; BEGIN v_prt(1) := '正数'; v_prt(-1) := '负数'; SELECT * INTO v_prt_row(1) FROM productinfo WHERE productid = '024004001'; DBMS_OUTPUT.PUT_LINE('行数据v_prt_row(1) = ' || v_prt_row(1).productid); DBMS_OUTPUT.PUT_LINE('v_prt(1) = ' || v_prt(1)); END;
VARRAY变长数组
TYPE type_name IS {VARAY|VARYING ARRAY}(size_limit) OF element_type [NOT NULL]
DECLARE TYPE varr IS VARRAY(100) OF VARCHAR2(20); v_product varr:=varr('1','2'); BEGIN v_product(1):='THIS IS A'; v_product(2):='TEST'; DBMS_OUTPUT.PUTLINE('productid = ' || v_product(1)); END;
相关文章推荐
- pl/sql中在where in()子句里怎么使用字符串变量来传递查询条件?
- [PL/SQL]测试存储过程执行超长SQL(使用CLOB变量)
- PL/SQL中游标和游标变量的使用
- 使用PL/SQL 记录变量接收游标数据
- PL/SQL中游标和游标变量的使用
- PL/SQL中游标和游标变量的使用
- PL/SQL中LIKE函数使用变量 PL/SQL中LIKE函数使用变量
- ORACLE PL/SQL 变量的使用
- [oracle编程]pl/sql --标量 复合变量以及游标的简单使用
- PL/SQL拼接和使用绑定变量
- PL/SQL变量使用
- 在PL/SQL中使用游标、动态sql和绑定变量的小例子
- 有关pl/sql的游标, 文本拼接和绑定变量使用小心得.
- pl/sql之定义并使用变量,复合类型
- PL/SQL复合类型变量的使用(record、pl/sql表、bulk collect)
- PL/SQL拼接和使用绑定变量
- PL/SQL中游标和游标变量的使用
- oracle PL\SQl基础 变量的使用
- 使用绑定变量提升 PL/SQL 程序性能
- pl/sql 程序中的变量使用实例