SQL:3.1变量-20181223

DECLARE
   v_empname VARCHAR2(20);
   v_deptname VARCHAR2(20);
   v_hiredate DATE NOT NULL := SYSDATE;
   v_empno INT NOT NULL DEFAULT 7639;
BEGIN
   NULL;
END;


DECLARE
   v_counter INTEGER;
BEGIN
   v_counter := 90;
   v_counter := v_counter+1;
   DBMS_OUTPUT.put_line('未赋值的变脸示例结果:'||v_counter);
END;


DECLARE
   v_salary NUMBER(7,2);
   v_rate NUMBER(7,2) := 0.12;
   v_base_salary NUMBER(7,2) := 1200;
BEGIN
   v_salary := v_base_salary*(1+v_rate);
   DBMS_OUTPUT.put_line('员工的薪资为:'||v_salary);
END;


DECLARE
   v_string VARCHAR2(200);
   v_hire_date DATE;
   v_bool BOOLEAN;
BEGIN
   v_bool := TRUE;
   v_hire_date := to_date('2018-12-23','yyyy-mm-dd');
   v_hire_date := SYSDATE;
   v_hire_date := date'2018-12-23';
   v_string := 'This is a string';
END;


DECLARE
   v_empno emp.empno%TYPE;
   v_ename emp.ename%TYPE;
   v_hiredate emp.hiredate%TYPE;
BEGIN
   SELECT empno, ename, hiredate INTO v_empno, v_ename, v_hiredate FROM emp WHERE empno = &empno;

   DBMS_OUTPUT.put_line('员工编号为:'||v_empno);
   DBMS_OUTPUT.put_line('员工名称为:'||v_ename);
   DBMS_OUTPUT.put_line('雇佣日期为:'||v_hiredate);
END;


DECLARE
   v_empno emp.empno%TYPE;
   v_empno2 v_empno%TYPE;
   v_salary NUMBER(7,3) NOT NULL := 1350.5;
   v_othersalary v_salary%TYPE := 1500;
BEGIN
   NULL;
END;


DECLARE
   v_emp emp%ROWTYPE;
BEGIN
   SELECT * INTO v_emp FROM emp WHERE empno = &empno;
   DBMS_OUTPUT.put_line(v_emp.empno || CHR(10) || v_emp.ename);
END;


DECLARE
   v_emp emp%ROWTYPE;
BEGIN
   v_emp.empno := 8001;
   v_emp.ename := '张三丰';
   v_emp.job := '掌门';
   v_emp.mgr := 7902;
   v_emp.hiredate := date'2018-12-23';
   v_emp.sal := 8000;
   v_emp.deptno := 20;
   INSERT INTO emp VALUES v_emp;
   COMMIT;
END;


DECLARE
   CURSOR emp_cursor IS SELECT empno, ename, job, sal, hiredate FROM emp;
   v_emp emp_cursor%ROWTYPE;
BEGIN 
   OPEN emp_cursor;
   LOOP
      FETCH emp_cursor INTO v_emp;
   EXIT WHEN emp_cursor%NOTFOUND;
   DBMS_OUTPUT.put_line( v_emp.empno
                         || ''
                         || v_emp.ename
                         || ''
                         || v_emp.job
                         || ''
                         || v_emp.sal
                         || ''
                         || TO_CHAR(v_emp.hiredate, 'YYYY-MM-DD'));
   END LOOP;
   CLOSE emp_cursor;
END;


DECLARE
   c_salary_rate CONSTANT NUMBER(7,2) := 0.25;
   v_salary NUMBER(7,2);
BEGIN
   SELECT sal * (1+c_salary_rate) INTO v_salary FROM emp WHERE empno = &empno;
   DBMS_OUTPUT.put_line('加薪后的薪资为:'|| v_salary);
END;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值