实验4 SQL_PL编程基础_V2013(2)

2018-11-26 22:34

DECLARE v_weight NUMBER(3) := 100; v_message VARCHAR2(255) := 'Outer Value'; BEGIN

DECLARE

v_weight NUMBER(3) := 1;

v_message VARCHAR2(255) :='Inner value'; BEGIN

v_weight := v_weight + 1; v_message := 'Put'|| v_message;

DBMS_OUTPUT.PUT_LINE('inner block ' || to_char(v_weight) ||

v_message);

END;

v_weight := v_weight + 1;

v_message := 'Put' || v_message;

DBMS_OUTPUT.PUT_LINE('outter block ' || to_char(v_weight) || v_message); END;

运行结果为:

4.3.使用%type和%rowtype变量

1.使用%type变量

阅读以下程序,理解其功能,给出运行结果。 (1)DROP TABLE EMPL;

create table EMPL (

EMPLOYEE_ID NUMBER(5) not null,

第 6 页 共 31 页

LAST_NAME VARCHAR2(20) not null, HIRE_DATE DATE,

SALARY NUMBER(8,2), JOB_ID NUMBER(5), DEPARTMENT_ID NUMBER(5) );

set serveroutput on;

declare

v_last_name emp.last_name%TYPE; v_hire_date emp.hire_date%TYPE; v_balance number(6,2) ; v_min_balance v_balance%type; begin

dbms_output.put_line('定义%type类型的变量'); end; /

运行结果为:

(2)declare

v_deptno dept.deptno%type; v_loc dept.loc%type;

第 7 页 共 31 页

begin

select deptno,loc

into v_deptno,v_loc from dept

where dname='SALES';

DBMS_OUTPUT.PUT_LINE (V_deptno ||' and '||v_loc); end; /

运行结果为:

2.使用%Rowtype变量

阅读以下程序,理解其功能,给出运行结果。

(1) DROP TABLE EMPL;

create table EMPL (

EMPLOYEE_ID NUMBER(5) not null, LAST_NAME VARCHAR2(20) not null, HIRE_DATE DATE,

SALARY NUMBER(8,2), JOB_ID NUMBER(5), DEPARTMENT_ID NUMBER(5) );

set serveroutput on;

-- PL/SQL变量之%ROWTYPE类型 declare

v_empl emp%rowtype; begin

dbms_output.put_line('定义%rowtype类型的变量');

第 8 页 共 31 页

end; /

运行结果为:

(2) drop table stock;

create table stock (

symbol varchar2(50), price number(6,2) );

insert into stock values('IBM',188.88);

insert into stock values('ORCL',100.88);

DECLARE

stock_info1 stock%ROWTYPE; stock_info2 stock%ROWTYPE; stock_info3 stock%ROWTYPE;

第 9 页 共 31 页

BEGIN

--对应纪录直接取得相应字段的:Populate the specific fields in a record SELECT symbol,price

INTO stock_info1.symbol,stock_info1.price FROM stock

WHERE symbol ='ORCL';

--对应纪录直接 放入纪录中

SELECT * INTO stock_info2 FROM stock WHERE symbol ='ORCL';

stock_info3 := stock_info2; --记录间可以相互赋值

stock_info3.symbol:='ORACLE'; --对纪录的各字段赋值。

DBMS_OUTPUT.PUT_LINE('stock_info1 :' || stock_info1.symbol || '

'||stock_info1.price);

DBMS_OUTPUT.PUT_LINE('stock_info2 :' || stock_info2.symbol || '

'||stock_info2.price);

DBMS_OUTPUT.PUT_LINE('stock_info3 :' || stock_info3.symbol || '

'||stock_info3.price);

END;

运行结果为:

思考:

如下所示:改变表结构。

drop table stock; create table stock (

symbol varchar2(50), price number(6,2), owner varchar2(10) );

第 10 页 共 31 页


实验4 SQL_PL编程基础_V2013(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国石英石台面行业市场前景分析预测年度报告(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: