1 DECLARE 2 v_productid productinfo.productid%TYPE; 3 v_productname VARCHAR2(20); 4 v_productprice NUMBER(8,2); 5 v_quantity NUMBER(10); 6 v_desperation CONSTANT v_productname%TYPE:='测试'; 7 8 v_spitgr SIMPLE_INTEGER := 99.9; 9 v_long LONG :='long类型测试'; 10 v_date DATS :=SYSDATE; 11 BEGIN 12 SELECT productid,productname,productprice,quantity 13 INTO v_productid,v_productname,v_productprice,v_quantity 14 FROM productinfo 15 WHERE pro = '0240040001'; 16 17 DBMS_OUTPUT.PUT_LINE('v_productid = ' || v_productid); 18 DBMS_OUTPUT.PUT_LINE('v_productname = ' || v_productname 19 || ' 长度 = '||LENGTH(v_productname)); 20 DBMS_OUTPUT.PUT_LINE('v_productprice = ' || v_productprice); 21 DBMS_OUTPUT.PUT_LINE('v_quantity = ' || v_quantity); 22 DBMS_OUTPUT.PUT_LINE('v_desperation = ' || v_desperation); 23 DBMS_OUTPUT.PUT_LINE('v_spitgr = ' || v_spitgr); 24 DBMS_OUTPUT.PUT_LINE('v_long = ' || v_long); 25 DBMS_OUTPUT.PUT_LINE('v_date = ' || v_date); 26 END;
【代码解析】
该语句块中的声明部分采用了右对齐的方式
第2行利用%TYPE方式声明变量,表示变量v_productid的类型同表productinfo中的productid字段数据类型一致
第3行表示数据类型是长度为20的VARCHAR2型
第4 ~ 5行是NUMBER类型的不同使用方式
第6行利用%TYPE引用了v_productname的数据类型,并且声明了一个常量
第8行初始值是99.9,但由于数据类型只能表示整数,所以变量v_spitgr的值应为100
第11 ~ 26行属于执行体部分
第12 ~ 15行表示从产品表查询数据,并存储到变量中
第17 ~ 25行表示输出结果到屏幕,用于验证变量存储数据