Oracle 实验四
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 实验四相关的知识,希望对你有一定的参考价值。
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 11月 18 19:32:00 2016 Copyright (c) 1982, 2010, Oracle. All rights reserved. 请输入用户名: system 输入口令: 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> connect / as sysdba 已连接。 SQL> / 输入 str 的值: 20110002 原值 5: v_no := &str; 新值 5: v_no := 20110002; PL/SQL 过程已成功完成。 SQL> set serveroutput on SQL> / 输入 str 的值: 20110002 原值 5: v_no := &str; 新值 5: v_no := 20110002; 马力 PL/SQL 过程已成功完成。 SQL> insert into t_student(Sno,Sname,sbirthday) values(20110002,‘马力‘,TO_DATE(‘1991-02-21‘,‘YYYY-MM-DD‘)); 已创建 1 行。 SQL> / 已创建 1 行。 SQL> edit 已写入 file afiedt.buf 1 declare 2 v_score t_score.score%type; 3 begin 4 select score into v_score from t_score where sno=20100002 and Sub_no=001; 5 case 6 when v_score<81 then v_score:=v_score+8; 7 when v_score<91 then v_score:=v_score+5; 8 when v_score<97 then v_score:=v_score+3; 9 end case; 10 update t_score set score=v_score where sno=20100002 and Sub_no=001; 11* end; 12 / PL/SQL 过程已成功完成。 SQL> select * from t_score where sno = 20100002 and Sub_no=001; SNO SUB_NO SCORE ---------- ---------- ---------- 20100002 1 92 SQL> edit 已写入 file afiedt.buf 1 declare 2 v_counter binary_integer:=1; 3 begin 4 while v_counter<=100 loop 5 if mod(v_counter,3) = 0 and mod(v_counter,2)=0 6 then dbms_output.put_line(v_counter||‘ ‘); 7 end if; 8 v_counter :=v_counter+1; 9 end loop; 10* end; SQL> / 6 12 18 24 30 36 42 48 54 60 66 72 78 84 90 96 PL/SQL 过程已成功完成。 SQL> create or replace procedure add_student(p_sno t_student.sno%type, p_sname t_student.sname%type, p_ssex t_student.ssex%type, p_sbirthday t_student.sbirthday%type) 2 as 3 4 begin 5 insert into t_student values(p_sno,p_sname,p_ssex,p_sbirthday); 6 end; 7 / 过程已创建。 SQL> execute add_student(20140001,‘林蔚然‘,1,‘15-2月-1996‘); PL/SQL 过程已成功完成。 SQL> select * from t_student; SNO SNAME SSEX SBIRTHDAY ---------- ---------- ---------- -------------- 20110002 马力 21-2月 -91 20100002 张杰 1 03-1月 -92 20100003 李娟 0 14-6月 -92 20110001 王强 1 20100001 刘浩 1 12-10月-91 20140001 林蔚然 1 15-2月 -96 已选择6行。 SQL> edit 已写入 file afiedt.buf 1 create or replace procedure ave(p_sno t_score.sno%type) 2 as 3 avg_score t_score.score%type; 4 begin 5 select avg(score) into avg_score from t_score where sno=p_sno; 6 dbms_output.put_line(avg_score); 7* end; SQL> / 过程已创建。 SQL> execute ave(20100003); 86.5 PL/SQL 过程已成功完成。 SQL> edit 已写入 file afiedt.buf 1 declare 2 name t_student.sname%type; 3 no t_student.sno%type; 4 begin 5 no := &str; 6 select sname into name from t_student where sno=no; 7 dbms_output.put_line(name); 8 exception 9 when no_data_found then 10 dbms_output.put_line(‘data not found!‘); 11* end; SQL> / 输入 str 的值: 20140001 原值 5: no := &str; 新值 5: no := 20140001; 林蔚然 PL/SQL 过程已成功完成。 SQL> / 输入 str 的值: 20140002 原值 5: no := &str; 新值 5: no := 20140002; data not found! PL/SQL 过程已成功完成。 SQL>
以上是关于Oracle 实验四的主要内容,如果未能解决你的问题,请参考以下文章