例子2: SQL> declare
2 v_name varchar2(20);
3 begin
4 v_name:='myname';
5 dbms_output.put_line(v_name); 6 end; 7 / myname 例子3: SQL> declare
2 v_num number:=0; 3 begin
4 v_num:=2/v_num;
5 dbms_output.put_line(v_num); 6 end; 7 /
declare *
ERROR 位于第 1 行: ORA-01476: 除数为 0 ORA-06512: 在line 4 例子4:
declare
v_num number:=0;
begin
v_num:=2/v_num;
dbms_output.put_line(v_num); exception when others then
dbms_output.put_line('error'); end; /
变量声明的规则
1.变量名不能够使用保留字,如from,select等 2.第一字符必须是字母。 3.变量名最多包含30个字符
4.不要与数据库的表或者列同名 5.每一行只能声明一个变量
常用变量类型
1. binary_interger,整数,主要用来计数,而不是用来表示字段类型2. number 数字类型3. char   定长字符串 4. varchar2 变长字符串
5. date     日期
6.long     长字符串,最长2GB
7.boolean   布尔类型,可以取true false 和null的值 例5: declare v_temp number(1); v_count binary_integer:=0;     v_sal number(7,2):=4000.00;       v_date date:=sysdate; v_pi constant number(3,2):=3.14;      v_valid boolean:=false; v_name varchar2(20) not null:='myname'; begin dbms_output.put_line('v_temp value:'||v_temp); end;
用--可以注释一行 例6: declare v_empno number(4);     v_empno2 emp.empno%type;     v_empno3 v_empno2%type; 

begin dbms_output.put_line('test'); end; 例7
table变量类型 set serveroutput on;
declare type type_table_emp_empno is table of emp.empno%type index by binary_integer;      v_empnos type_table_emp_empno; 

begin v_empnos(0):=7369;           v_empnos(2):=7869; v_empnos(-1):=9999; dbms_output.put_line(v_empnos(-1)); end; 例8
Record 变量类型 set serveroutput on; declare type type_record_dept is record    ( deptno dept.deptno%type, dname   dept.dname%type,       loc     dept.loc%type     ); v_temp type_record_dept; begin v_temp.deptno:=50;     v_temp.loc:='aaaa'; v_temp.loc:='bj'; dbms_output.put_line(v_temp.deptno||' '||v_temp.dname); 

end;

例9:  使用%rowtype声明record变量(表结构的变化同时也能代理储存过程的变化) set serveroutput on; declare  v_temp dept%rowtype; begin      v_temp.deptno:=50;      v_temp.loc:='aaaa';       v_temp.loc:='bj';      dbms_output.put_line(v_temp.deptno||' '||v_temp.dname); end; 例10;  declare  v_name emp.ename%type;       v_sal emp.sal%type; 

begin

  select ename,sal into v_name,v_sal from emp where empno=7369;(将ename和sal的值放在v_name和v_sal里面)end;例11:
declare
v_name emp.ename%type; v_sal emp.sal%type;
begin
select ename,sal into v_name,v_sal from emp where empno=7369; dbms_output.put_line(v_name||' '||v_sal); end;
dbms_output.put_line(v_name||' '||v_sal); 

end; 

例12: declare
v_deptno dept.deptno%type:=50; v_dname dept.dname%type:='aaaa';
v_loc    dept.loc%type:='bj';
begin
insert into dept2 values(v_deptno,v_dname,v_loc); commit; end; 

例13:
declare
v_deptno emp2.deptno%type:=50; v_count number;
begin
update emp2 set sal=sal/2 where deptno=v_deptno;
dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句 commit; end; / 例14:
declare
v_deptno emp2.deptno%type:=50; v_count number;
begin
--update emp2 set sal=sal/2 where deptno=v_deptno; select deptno into v_deptno from emp2 where empno=7369;
dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句 commit; 

end; / 例15
declare
v_deptno emp2.deptno%type:=50; v_count number; begin
--update emp2 set sal=sal/2 where deptno=v_deptno;
--select deptno into v_deptno from emp2 where empno=7369;
select count(*) into v_count from emp2;          (select必须和into一起使用)
dbms_output.put_line(sql%rowcount ||'条记录被影响'); 

commit;
end; /
PL/SQL里面执行DDL语句
begin
execute immediate 'create table T(nnn varchar2(20) default ''aaa'')'; 

例11:
declare
v_name emp.ename%type; v_sal emp.sal%type;
begin
select ename,sal into v_name,v_sal from emp where empno=7369; dbms_output.put_line(v_name||' '||v_sal); end;
dbms_output.put_line(v_name||' '||v_sal); end; 例12: declare v_deptno dept.deptno%type:=50; v_dname dept.dname%type:='aaaa'; v_loc    dept.loc%type:='bj';
begin
insert into dept2 values(v_deptno,v_dname,v_loc); commit; end; 例13:
declare
v_deptno emp2.deptno%type:=50; v_count number;
begin
update emp2 set sal=sal/2 where deptno=v_deptno;
dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句 commit; end; / 例14:
declare v_deptno emp2.deptno%type:=50; v_count number;
begin
--update emp2 set sal=sal/2 where deptno=v_deptno; select deptno into v_deptno from emp2 where empno=7369;
dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句 commit; end; / 例15
declare
v_deptno emp2.deptno%type:=50; v_count number; 

begin
--update emp2 set sal=sal/2 where deptno=v_deptno;
--select deptno into v_deptno from emp2 where empno=7369;
select count(*) into v_count from emp2;                        (select必须和into一起使用)
dbms_output.put_line(sql%rowcount ||'条记录被影响'); commit;
end; /
PL/SQL里面执行DDL语句
begin
execute immediate 'create table T(nnn varchar2(20) default ''aaa'')'; 例11:
declare
v_name emp.ename%type; v_sal emp.sal%type;
begin
select ename,sal into v_name,v_sal from emp where empno=7369; dbms_output.put_line(v_name||' '||v_sal); end;
dbms_output.put_line(v_name||' '||v_sal); end; 例12: declare
v_deptno dept.deptno%type:=50; v_dname dept.dname%type:='aaaa';
v_loc    dept.loc%type:='bj';
begin
insert into dept2 values(v_deptno,v_dname,v_loc); commit; end;

 例13:
declare
v_deptno emp2.deptno%type:=50; v_count number;
begin
update emp2 set sal=sal/2 where deptno=v_deptno;
dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句 commit; end; / 例14:
declare
v_deptno emp2.deptno%type:=50; v_count number;
begin
--update emp2 set sal=sal/2 where deptno=v_deptno; select deptno into v_deptno from emp2 where empno=7369;
dbms_output.put_line(sql%rowcount ||'条记录被影响');(sql为关键字,代表上一条语句 commit; 

end; 

/ 例15
declare
v_deptno emp2.deptno%type:=50; v_count number; begin
--update emp2 set sal=sal/2 where deptno=v_deptno;
--select deptno into v_deptno from emp2 where empno=7369;
select count(*) into v_count from emp2;                        (select必须和into一起使用)
dbms_output.put_line(sql%rowcount ||'条记录被影响'); commit;
end; / 

转载于:https://www.cnblogs.com/ruishuang208/p/4095397.html

Oracle SQL语句大全(三)相关推荐

  1. Oracle查询所有序列;[oracle中如何创建表的自增ID(通过序列);oracle sql语句大全

    Oracle查询所有序列 oracle sql语句大全 oracle中如何创建表的自增ID(通过序列)

  2. oracle sql语句大全

    ORACLE支持五种类型的完整性约束NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.CHECK (检查)--检查在约束中 ...

  3. Oracle SQL语句大全(二)

    avg(sal) desc; 查找部门中平均薪水打印2000的员工并按部门号进行排序,查询分组后的平均薪水必须大于1500,查询结果按平均薪水从低到高排列 49.select ename from e ...

  4. Oracle的SQL语句大全(摘)--- 复杂

    数据库各个表空间增长情况的检查: SQL >SELECT A.TABLESPACE_NAME,( 1 -(A.TOTAL)/B.TOTAL)* 100 USED_PERCENT FROM (SE ...

  5. ORACLE常用SQL语句大全

    ORACLE常用SQL语句大全 DDL:数据库定义语言(CREATE.ALTER.DROP.TRUNCATE.COMMENT.RENAME),用来创建数据库中的表.索引.视图.存储过程.触发器等对象的 ...

  6. mysql数据库sql语句大全

    mysql sql语句大全 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql se ...

  7. [转]SQL语句大全

    [转]SQL语句大全    SQL语句大全 --语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除 ...

  8. 经典SQL语句大全、50个常用的sql语句

    50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...

  9. 常用经典SQL语句大全完整版--详解+实例 (存)

    常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012  http://blog.sina.com.cn/s/blog_84 ...

最新文章

  1. FLASH全屏,左右侧,闪烁广告及对错觉的代码补充.
  2. javascript 数字的常用方法
  3. 云舒网络译:Rancher1.0正式版公布
  4. Spring Cloud Gateway(过滤器)
  5. Python之每个人都应该知道的30个一行代码程序
  6. VSCode配置Python编辑器
  7. SAP Fiori里两种锁机制(lock)的实现
  8. ASP.NET MVC数据验证(上)
  9. 演示: 动态NAT完成网络地址翻译
  10. 用计算机算出鞋子的鞋码,【鞋子尺码对照】鞋子尺码怎么算_鞋子尺码怎么量 - 妈妈网百科...
  11. 华科一篇 20 年前硕士论文,「神预言」深圳赛格大厦晃动?导师回应
  12. struts2 过滤器和拦截器的区别和使用
  13. bootstrap和圣杯布局
  14. 第四章Python数值计算工具 ——Numpy
  15. java判断一个数是否为素数的程序_java如何判断一个数是否为素数
  16. 2019年8月2 星期五 今日计划
  17. 1628_MIT 6.828 xv6_chapter0操作系统接口
  18. 【Java--日期的使用】
  19. autojs root权限命令
  20. 奉劝大家不要再用刷流量软件刷新浪博客等级了

热门文章

  1. 用UI讲故事,表达情感和创造个性
  2. Machinations——可视化游戏设计
  3. C盘不够用了怎么办,看我4年未重做系统如何清理出25G的temp磁盘空间?
  4. linux 文件打开数设置, too ma
  5. 54. Spiral Matrix
  6. Docker ElK安装部署使用教程
  7. 怎么解决深入学习PHP的瓶颈
  8. 洛谷 P1202 模拟 - 黑色星期五 Friday the Thirteenth
  9. 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是否缺少程序集引用?...
  10. 2017 阿里技术-年度精选