你所在的位置: 首页 > Oracle > OCA >
最新开班 班级 报名状态
9月25日 HCNA-Cloud Service 热招中
9月25日 HCNA-Cloud Service 热招中
9月30日 HCNA-R&S周末班 热招中
10月31日 HCNP-storage脱产班 热招中
10月23日 HCNA-storage脱产班 热招中
10月20日 HCNP-R&S脱产班 热招中
10月10日 HCIE-R&S脱产班 热招中
10月9日 HCNA-R&S脱产班 热招中
9月25日 HCNP-Cloud脱产班 热招中
9月18日 HCNA-Cloud脱产班 热招中
  • 博赛网络ICT就业班热招中
  • 博赛推出Oracle OCM实战课程

Oracle变量语句练习 (1)

时间:2013-10-31 16:17 作者:Superthink 点击:

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;

(责任编辑:Superthink)

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)