-- Created on 2017/1/5 by ADMINISTRATOR
DECLARE
-- Local variables here
i INTEGER := 12;
v_name VARCHAR(15) := '张晓风';
v_age NUMBER(3) := 28;
v_sex VARCHAR(4) := '男';
v_height NUMBER(3) := 150;
v_age1 NUMBER(3); BEGIN
v_age1 := 3;
-- Test statements here
dbms_output.put_line('我叫' || v_name || ', ');
dbms_output.put_line('今年' || v_age || ', ');
dbms_output.put_line('性别' || v_sex || ', ');
dbms_output.put_line('身高' || v_height || ', ');
END; --给100号员工的工资加1
DECLARE
v_sal1 number;
v_sal2 number:=1;
BEGIN
SELECT salary INTO v_sal1 FROM employees WHERE employee_id = 100;
UPDATE employees SET salary = (v_sal1 + v_sal2) WHERE employee_id =100;
COMMIT;
END; SELECT ename, sal INTO v_ename, v_sal FROM emp WHERE empno = 7369;
--查询员工编号为7369号的员工信息,列包括:姓名,薪资
DECLARE
v_empid NUMBER(5) := 7369;
v_name emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
SELECT ename, sal INTO v_name, v_sal FROM emp WHERE empno = v_empid;
dbms_output.put_line('名字:' || v_name || ',薪资:' || v_sal);
END;
--向表new_dept插入数据,部门编号为50,部门名称chinasofti,地址:zz
CREATE TABLE new_dept AS SELECT * FROM dept;
DECLARE
v_deptno new_dept.deptno%TYPE := 50;
v_dname new_dept.dname%TYPE := 'chinasofti';
v_loc new_dept.loc%TYPE := 'zz';
BEGIN
INSERT INTO new_dept VALUES(v_deptno, v_dname, v_loc);
COMMIT;
END;
/*录入一个数字,
如果大于0小于100输出大于0小于100,
如果大于0大于100输出大于0大于100
如果小于0输出 小于0
*/
DECLARE
v_test number(6):=&input;
BEGIN
IF v_test >=0 AND v_test <=100 THEN
dbms_output.put_line('输入的值在0和100之间');
ELSIF v_test > 100 THEN
dbms_output.put_line('输入的值大于100');
ELSE
dbms_output.put_line('输入的值小于0');
END IF;
END;
-- --输入一个员工编号,判断员工工资等级(输出员工编号,姓名,工资,工资等级)
--如果员工不存在,那么提示"输入的员工不存在"
/*
>=15000 A
>=10000 B
>=5000 C
<5000 D
*/
DECLARE
e employees%ROWTYPE; --表对象
v_level CHAR(1); --工资级别
v_count BINARY_INTEGER; --存放员工是否存在0不存在1存在
BEGIN
e.employee_id := &input;
SELECT COUNT(e.employee_id)
INTO v_count
FROM employees
WHERE employee_id = e.employee_id;
IF (v_count <= 0) THEN
dbms_output.put_line('员工不存在');
ELSE
SELECT *
INTO e
FROM employees
WHERE employee_id = e.employee_id;
IF e.salary >= 15000 THEN
v_level := 'A';
ELSIF e.salary >= 10000 THEN
v_level := 'B';
ELSIF e.salary >= 5000 THEN
v_level := 'c';
ELSE
v_level := 'D';
END IF;
dbms_output.put_line('员工编号:' || e.employee_id || ',姓名:' || e.last_name || ',工资:' || e.salary ||',工资等级:' || v_level);
END IF;
END; --********************-- declare
e employees%rowtype;--表对象
v_level char(1);--工资级别
v_count binary_integer;--存放员工是否存在0不存在1存在 begin
e.employee_id:=&input;
select count(employee_id) into v_count from employees where employee_id= e.employee_id;
if(v_count<=0)
then
dbms_output.put_line('员工不存在');
return;--退出
end if;
--接下来plsql块
select * into e from employees where employee_id= e.employee_id;-->select employee_id,first_name...,deparment_id into v_employee_id,v_first_name...,v_deparment_id frp from employees where employee_id= v_employee_id;
dbms_output.put_line('----:' || e.salary);
if(e.salary>=15000) then
v_level:='A';
elsif(e.salary>=10000) then
v_level:='B';
elsif(e.salary>=5000) then
v_level:='C';
else
v_level:='D';
end if;
--输出员工编号,姓名,工资,工资等级
dbms_output.put_line('员工编号:' || e.employee_id || ',姓名:' || e.last_name || ',工资:' || e.salary ||',工资等级:' || v_level);
end;
--case语句
case 表达式值
when 值1 THEN
语句块1;
when 值2 THEN
语句块2;
end case; --输入ABCD,输入 A优秀 B良好 C一般 D差劲
DECLARE
v_char VARCHAR2(1) := '&input';
BEGIN
CASE v_char
WHEN 'A' THEN
dbms_output.put_line('优秀');
WHEN 'B' THEN
dbms_output.put_line('良好');
WHEN 'C' THEN
dbms_output.put_line('一般');
WHEN 'D' THEN
dbms_output.put_line('差劲');
END CASE;
END;
--loop循环使用
DECLARE
v_i BINARY_INTEGER := 0;
BEGIN
LOOP
IF v_i > 10 THEN
EXIT;
END IF;
v_i := v_i + 1;
dbms_output.put_line('第' || v_i || '次循环');
END LOOP;
dbms_output.put_line('循环结束');
END; --while循环使用
DECLARE
v_i BINARY_INTEGER := 0;
BEGIN
WHILE v_i < 10 LOOP
dbms_output.put_line('hello' || v_i);
v_i := v_i + 1;
END LOOP;
dbms_output.put_line('over');
END; --for循环正序
DECLARE
BEGIN
FOR v_i IN 0 .. 10 LOOP
dbms_output.put_line('hello' || v_i);
END LOOP;
dbms_output.put_line('over');
END;
--for循环倒序
DECLARE
BEGIN
FOR v_i IN REVERSE 0 .. 10 LOOP
dbms_output.put_line('hello' || v_i);
END LOOP;
dbms_output.put_line('over');
END;
--循环插入10行数据
CREATE TABLE books(
author varchar2(20),
book number(4)
);
--FOR循环
DECLARE
v_name VARCHAR2(12) := 'Jhon';
BEGIN
FOR v_i IN 1 .. 10 LOOP
INSERT INTO books VALUES (v_name || v_i, v_i);
COMMIT;
END LOOP;
END;
--WHILE循环
DECLARE
v_name VARCHAR2(12) := 'Jhon';
v_i BINARY_INTEGER := 1;
BEGIN
WHILE v_i <= 10 LOOP
INSERT INTO books VALUES (v_name || v_i, v_i);
COMMIT;
v_i := v_i + 1;
END LOOP;
END;
--loop循环
DECLARE
v_name VARCHAR2(12) := 'Jhon';
v_i BINARY_INTEGER := 1;
BEGIN
LOOP
IF v_i > 10 THEN
EXIT;
END IF;
INSERT INTO books VALUES (v_name || v_i, v_i);
COMMIT;
v_i := v_i + 1;
END LOOP;
END;

Orcle基本语句(六)的更多相关文章

  1. Orcle 查询语句

    首先,以超级管理员的身份登录oracle       sqlplus sys/bjsxt as sysdba   --然后,解除对scott用户的锁       alter user scott ac ...

  2. ORCLE基本语句(二)

    select语句的基本语法: [ORDER BY < COLUMN1, COLUMN2, COLUMN3...> [ASC 或 DESC]]

  3. Orcle基本语句(五)

    --分页查询---begin --sqlserver top --mysql limit --oracle rownum(伪列),oracle中伪列(rownum,rowid) --查询工资为前五的信 ...

  4. Orcle基本语句(三)

    COMMIT; --查询表内所有内容 SELECT * FROM stu_info; --查询部分列,并赋予别名 SELECT stu_id 学生标号,stu_name 学生姓名 FROM stu_i ...

  5. Orcle常用语句

    在SQLPlus界面的操作语句: 查看\设置每行内显示的字符数:show\set linesize [linesize] 查看\设置一次显示的行数:show\set pagesize [pagesiz ...

  6. Orcle基本语句(一)

    --创建学生信息表,约束放在所有列定义之后 CREATE TABLE stu_info( stu_id INTEGER, stu_name NVARCHAR2() NOT NULL, stu_sex ...

  7. IBatis.net动态SQL语句(六)

    在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&quo ...

  8. Orcle基本语句(四)

    --显示员工的编号,姓名,工资,工资级别,所在部门的名称;(使用emp表) SELECT * FROM emp; SELECT * FROM salgrade; SELECT * FROM dept; ...

  9. Mysql 语句执行顺序

    1.这样一个问题,作为一个开发人员需要掌握数据库的哪些东西?  在开发中涉及到数据库,基本上只用到了sql语句,如何写sql以及对其进行优化就比较重要,那些mysql的厚本书籍针对的是DBA,我们只需 ...

随机推荐

  1. 【转】Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing

    最近在看Java,在编译写书上一个例子时,由于书上的代码只有一部分,于是就自己补了一个内部类.结果编译时出现:No enclosing instance of type E is accessible ...

  2. Hive 中parse_url的使用

    1.Hive的parse_url函数 parse_url(url, partToExtract[, key]) - extracts a part from a URL 解析URL字符串,partTo ...

  3. WebAPI IIS PUT和DELETE请求失败

    IIS拒绝PUT和DELETE请求是由于IIS为网站默认注册的一个名为WebDAVModule的自定义HttpModule导致的,如果我们的站点不需要提供针对WebDAV的支持,解决这个问题最为直接的 ...

  4. 数据库服务器CPU持续百分之百、部分Session一直处于执行状态---等待事件为:asynch descriptor resize(Oracle Bug )

    问题描述: 项目反馈数据库服务器的CPU持续100%的情况,跟踪发现很多活动会话的等待事件是“asynch descriptor resize”,并且这些会话一直处于Active状态,而这些会话执行的 ...

  5. oracle之trunc与round

    round(x[,y]) 功能:返回四舍五入后的值 参数:x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位. 返回: ...

  6. shared_ptr 线程安全

    Then what's really happening is TWO different sections of memory are being allocated. It's done at o ...

  7. Sql Server分割字符串函数

    -- Description: 分割字符串函数 -- SELECT * FROM dbo.Split('a,b,c,d,e,f,g',',') -- ========================= ...

  8. Spring+Quartz(定时任务)

    此处用到的Quartz版本是quartz-2.2.3 官方网站:http://www.opensymphony.com/quartz 首先先介绍用到的几个关键类:scheduler任务调度.Job任务 ...

  9. Integration Services创建ETL包

    http://www.cnblogs.com/chiniao/archive/2009/12/23/1630595.html  (转载) Microsoft Integration Services ...

  10. parse output

    if ((line = br.readLine()).contains("PID")){ TestResultDTO t = new TestResultDTO(); t.pid ...