oracle 带有变量的语句_Oracle变量语句练习

Oracle变量语句练习

--声明一个变量,并给它赋值

declare

v_bonus number(8);

begin

select id*6 into v_bonus from A where Id=5;

DBMS_OUTPUT.PUT_LINE('奖金'||to_char(v_bonus));

end;

select * from emp

--拷贝一个字段的类型结构

declare

v_ename emp.ename%type;

v_sal emp.sal%type;

c_tax_rate constant number(3,2) :=0.03;

v_sal_tax v_sal%type;

begin

select ename,sal into v_ename,v_sal from emp where empno=&eno;

v_sal_tax :=v_sal * c_tax_rate;

dbms_output.put_line('雇员名称:' || v_ename);

dbms_output.put_line('工资:' || v_sal);

dbms_output.put_line('所得税' || v_sal_tax);

end;

select * from emp

declare

v_emp emp%rowtype; --与emp表中的各个列相同

begin

select * into v_emp from emp where empno=&eno; --将emp表中的所有记录赋值给 v_emp, &表示输入一个新的值

dbms_output.put_line('雇员名称:'|| v_emp.ename);

dbms_output.put_line('工资:' || v_emp.sal);

end;

-- 拷贝一条记录中几个字段的数据结构

declare

type emp_record_type is record(

name emp.ename%type,salary emp.sal%type,job emp.job%type

);

v_emp_record emp_record_type;

begin

select ename,sal,job into v_emp_record from emp where empno=&eno;

dbms_output.put_line('雇员名称:' || v_emp_record.name);

dbms_output.put_line('工资:'|| v_emp_record.salary);

dbms_output.put_line('职位:' || v_emp_record.job);

end;

insert into emp select * from emp

--拷贝整个表的表结构,逐行拷贝

declare

type emp_table_type is table of emp%rowtype

index by binary_integer;

v_emp_table emp_table_type;

begin

select ename,sal into v_emp_table(1).ename,v_emp_table(1).sal from emp where empno=7369;

select ename,sal into v_emp_table(2).ename,v_emp_table(2).sal from emp where empno=7370;

dbms_output.put_line('雇员名称:'||v_emp_table(1).ename || '工资:' || v_emp_table(1).sal);

dbms_output.put_line('雇员名称:' || v_emp_table(2).ename || '工资:' || v_emp_table(2).sal);

end;

--使用when loop 循环

declare

v_i number:=1;

v_s number:=0;

begin

loop

exit when v_i>100;

v_s:=v_s+v_i;

v_i:=v_i+1;

end loop;

dbms_output.put_line('100之内的整数和:' || v_s);

end;

--使用while loop 循环;

declare

v_i number:=1;

v_s number:=0;

begin

while v_i<=100 loop

v_s:=v_s+v_i;

v_i:=v_i+1;

end loop;

dbms_output.put_line('100以内的整数和: '|| v_s);

end;

--求100以内的自然数

declare

v_s number:=0;

begin

for v_i in 1..100 loop

v_s:=v_s+v_i;

end loop;

dbms_output.put_line('100以内的自然数:'|| v_s);

end;

--求100-110之间的素数

declare

v_m number:=101;

v_i number;

v_n number:=0;

begin

while v_m<110 loop

v_i:=2;

loop

exit when v_i>v_m-1;

if mod(v_m,v_i)=0 then

v_i:=0;

exit;

end if;

v_i:=v_i+1;

end loop;

if v_i>0 then

v_n:=v_n+1;

dbms_output.put_line('第'|| v_n || '个素数是' || v_m);

end if;

v_m:=v_m+2;

end loop;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值