Orcal基础

本文介绍了如何在PL/SQL中进行基本变量声明、数据查询、SQL语句应用、游标操作以及存储过程的创建与调用。内容包括变量类型定义、数据赋值、条件判断、循环结构和存储过程功能的演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先用是system登录plsql

然后可以在左下角找到user选项右键新建

给予权限

-- plsql编程 --
declare
  v_acgy number(4);
  v_acgs number(4);
  v_acge number(4);
  v_b varchar2(10);
  v_a number(4);
  v_c number(4);
  
  -- 与student表中的列sage类型相同 --
  v_e student.sage%type;
  
  -- 常量 --
  c_d constant number(5):=100;
begin
  -- 直接赋值 --
  v_acgy:=11;
  v_acgs:=12;
  v_acge:=11;
  -- sql语句赋值 into chr(10)换行 --
  select sname into v_b from student where s#=4;
  select s#,sage into v_a,v_c from student where s#=4;
  dbms_output.put_line('张朝淦平均成绩:'||chr(10)||(v_acgy+v_acgs+v_acge)/3);
  dbms_output.put_line('姓名'||v_b||'学号'||v_a||'年龄'||v_c);
end;

 

declare
  --v_a student.sage%type;
  --v_b number(4):=1000;
  --v_c number(4):=4;
  --v_d number(4):=21;
  v_s# student.s#%type;
  v_sname student.sname%type;
  v_sage student.sage%type;
  v_ssex student.ssex%type;
  -- 定义游标 --
  cursor cursor_a is
  select * from student;
begin
  -- if 语句 --
   -- select sage into v_a from student
   -- where s#=3;
    
   -- if v_a<18 then
   --  dbms_output.put_line('未成年');
      -- elsif不是elseif --
   -- elsif v_a<21 then
   --   dbms_output.put_line('青年');
   -- else 
   --   dbms_output.put_line('老年人');
   -- end if;
      
    -- 循环语句  可循环新增表内容--
   -- loop 
   --   v_b:=v_b+1;
   --   insert into student values(v_b,'黑子',30,'男');
   --   dbms_output.put_line('今天天气有点可惜');
   --   exit when v_b=1010;
   -- end loop; 
   
   -- mod(除数,被除数)取余 --
   -- loop 
   --   v_c:=v_c+1;
   --   if mod(v_c,2)=1 then
   --   insert into teacher values(v_c,'黑子');
   --   end if;
   --   exit when v_c=10;
   -- end loop;
   
   -- switch语句 --
   --case
   --  when v_d<10 then dbms_output.put_line('小于10');
   --  when v_d<20 then dbms_output.put_line('小于20');
   --  when v_d<30 then dbms_output.put_line('小于30');
   --  when v_d<40 then dbms_output.put_line('小于40');
   --end case;
   
   -- 打开游标 --
   open cursor_a;
   
   loop
     -- 提取游标 --
     -- 使用游标 --
      fetch cursor_a into v_s#,v_sname,v_sage,v_ssex;
      dbms_output.put_line(v_s#||v_sname||v_sage||v_ssex);
      exit when cursor_a%notfound;
   end loop;
   
   -- 关闭游标 --
   close cursor_a;
   
end;
 

-- 存储过程
-- 存储过程相当于封装了一个方法
-- 声明
-- 在左边看procedures是否正确
create procedure add_student(
       s# student.s#%type,
       sname student.sname%type,
       sage student.sage%type,
       ssex student.ssex%type,
       out_flag out number
)
is 
begin
      insert into student values(s#,sname,sage,ssex);
      commit;
      out_flag:=1;
end;


-- 调用存储过程 --
declare
   flag number(2);
begin
  add_student(6,'黑子',30,'男',flag);
  dbms_output.put_line(flag);
end;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咚微灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值