1. 编写函数接受参数并返回字符串:Hello $var.然后赋值给绑定变量并打印;
 create or replace function hello_function
( pv_whom varchar2 ) return varchar2 is
begin
return 'Hello '||pv_whom||'.';
end;
/ SQL> variable result varchar2(20);
SQL> call hello_function('Sam') into :result; Call completed. SQL> print :result

  2.获取系统精确时间和精确到天的时间

 declare
lv_date_1 date :=sysdate;
lv_date_2 date :=lv_date_1;
begin
dbms_output.put_line('lv_date_1: '||to_char(lv_date_1,'dd-mon-yy hh24:mi:ss'));
dbms_output.put_line('lv_date_2: '||to_char(trunc(lv_date_2),'dd-mon-yy hh24:mi:ss'));
end;
/ SQL>
lv_date_1: 22-8鏈-13 16:33:18
lv_date_2: 22-8鏈-13 00:00:00

  3.利用timestamp求出时间间隔

 declare
lv_interval interval day(9) to second;
lv_end_day date :=sysdate;
lv_start_day date := '28-apr-2012';
begin
lv_interval :=to_timestamp(lv_end_day) -to_timestamp(lv_start_day);
dbms_output.put_line(lv_interval);
end;
/ SQL>
+000000481 18:29:37.000000

  4.编写一个静态游标

 declare
cursor c is
select * from scott.dept;
begin
for i in c loop
dbms_output.put_line(i.loc);
end loop;
end;
/ SQL>
NEW YORK
DALLAS
CHICAGO
BOSTON PL/SQL procedure successfully completed.

  5.编写一个动态游标

 declare
lv_search_sal pls_integer;
cursor c (cv_search pls_integer) is
select * from scott.emp where sal>cv_search;
begin
for i in c (&input) loop
dbms_output.put_line(to_char(i.empno)||' '||i.ename||' '||i.job||' '||to_char(i.sal));
end loop;
end;
/ SQL> @afiedt.buf
Enter value for input: 990
old 6: for i in c (&input) loop
new 6: for i in c (990) loop
7499 ALLEN SALESMAN 1600
7521 WARD SALESMAN 1250
7566 JONES MANAGER 2975
7654 MARTIN SALESMAN 1250
7698 BLAKE MANAGER 2850
7782 CLARK MANAGER 2450
7788 SCOTT ANALYST 3000
7839 KING PRESIDENT 5000
7844 TURNER SALESMAN 1500
7876 ADAMS CLERK 1100
7902 FORD ANALYST 3000
7934 MILLER CLERK 1300

  6.利用游标查找符合要求的行然后更改每一行

 declare
cursor c is
select * from scott.emp where sal<990 for update;
begin
for i in c loop
update scott.emp set sal=sal*1.1
where current of c;
end loop;
end;
/

  7.显式游标的批量处理数据,建议取游标集合中的250~300条数据一次性处理;

 declare
type people_record is record
(ename varchar2(30),sal pls_integer);
type people_collection is table of people_record;
lv_people_collection people_collection;
cursor c is
select ename,sal from scott.emp;
begin
open c;
loop
fetch c bulk collect into lv_people_collection limit 5;
exit when lv_people_collection.count=0;
for i in 1..lv_people_collection.count loop
dbms_output.put_line(lv_people_collection(i).ename||' '||to_char(lv_people_collection(i).sal));
end loop;
dbms_output.put_line(to_char(c%rowcount));
end loop;
close c;
end;
/
~ SQL> @a.sql;
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
5
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
TURNER 1500
10
ADAMS 1100
JAMES 950
FORD 3000
MILLER 1300
14 PL/SQL procedure successfully completed.

pl sql练习(1)的更多相关文章

  1. Oracle PL/SQL随堂笔记总结

    1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle的p ...

  2. Oracle学习笔记十 使用PL/SQL

    PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用 ...

  3. PL/SQL连接错误:ora-12705:cannot access NLS data files or invalid environment specified

    适合自己的解决方法: 排查问题: 1. 你没有安装Oracle Client软件.这是使用PL/SQL Developer的必须条件.安装Oracle Client后再重试.2. 你安装了多个Orac ...

  4. PL/SQL循环

    1.if循环做判断 SET SERVEROUTPUT ON accept num prompt 'qinshuu'; DECLARE pnum NUMBER :=& num ; BEGIN T ...

  5. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

  6. PL/SQL连接Oracle数据库,中文乱码,显示问号

    问题描述: 登陆PL/SQL,执行SQL语句后,输出的中文标题显示成问号????:条件包含中文,则无数据.         如果不是中文,需要修改注册表值,方法如下: 进入注册表:Win+r,输入re ...

  7. PL/SQL客户端中执行insert语句,插入中文乱码

    问题描述:在PL/SQL客户端中执行insert语句,插入中文乱码 解决方案: 1.执行脚本 select userenv('language') from dual;    结果为AMERICAN_ ...

  8. PL/SQL Developer如何连接64位的Oracle图解

    在64位Win7系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer,此时就不能使用PL/SQL Developer来进行直接连接的,所以要想实现连接还得需要其他 ...

  9. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  10. pl/sql里的exists和in的差别

    项目中有个需要需要如下pl/sql(数据库是MariaDB) ) AS small FROM cmp_ent_main a WHERE createTime<'2016-9-21' ,,) ) ...

随机推荐

  1. jquery中的 ajax 以及map遍历

    1.语法 $.ajax{ type:'get',//类型 有get post url:'',//路径 data:{name:$('#ma').val(),nameq:$('#maq').val()}, ...

  2. vs2010中出现:程序管理器匹配不正确错误

    http://bbs.csdn.net/topics/360074795 这是一篇csdn上的讨论帖,第15楼给出了正解

  3. 【Lucene4.8教程之五】Luke

    一.Luke基本内容 1.Luke简介 Luke可用于查看Lucene创建的索引,并对其进行基本操作. 2.创建Luke (1)从Github上下载源文件 https://github.com/tar ...

  4. 2016届百度实习生前端笔试题上海卷a

    1.写出javascript运行结果:alert(‘5’+5); 结果:alert()函数中不能进行算术运算或字符串拼接,故不会弹出对话框.   2.写出javascript运行结果:for(var ...

  5. HttpApplication处理对象与HttpModule处理模块 (第三篇)

    一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型为HttpApplica ...

  6. VS2010下WPF开发ARCGIS ENGINE 10的带Ribbon控件项目

    原文 http://blog.sina.com.cn/s/blog_47522f7f0100nq5t.html 题目好长,但是集目前最新的工具于一身..VS是最新的2010版,不过用的是.net3.5 ...

  7. Android之自定义checkbox样式

    大部分情况下,我们在UI中并不采用Android自带的checkbox复选框样式,这时候就需要我们自定义自己的checkbox. 首先找两张checkbox背景图片,比如下图样子的: 然后在drawa ...

  8. mybatis第一个入门demo

    学习框架技术,一般先写个demo,先知道是什么,然后在知道为什么,这也是进步的一种. 源码链接:http://pan.baidu.com/s/1eQJ2wLG

  9. web api\ protobuf \formatter

    9:50:20吴X2014/11/7 9:50:20 9:55:14吴X2014/11/7 9:55:14webapi实现protobuf吴X2014/11/7 9:56:29http://www.s ...

  10. Types of Binary Tree

    Complete Binary Tree According to wiki, A complete binary tree is a binary tree in which every level ...