学习pl/sql之一
--使用pl/sql语句打印一个hello world
begin
dbms_output.put_line('hello,world');
end;
但是在sqlplus里面就不一样了
首先输入
begin
dbms_output.put_line('hello,world');
end;
/
通过set serveroutput on
/
来调用输出语句
可以通过edit命令对过程语句进行修改
name [constrant]datatype[notnull]:=|default value
--pl/sql语句中的if语句
declare
sal1 number(6,2);
begin
select sal into sal1 from emp where lower(ename)=lower('&ename');
if (sal1<2000) then
dbms_output.put_line('less 2000');
end if;
end;
--pl/sql 里面的 if else 语句
declare
sal1 number(6,2);
begin
select sal into sal1 from emp where lower(ename)=lower('&ename');
if (sal1<2000) then
dbms_output.put_line('less 2000');
else
dbms_output.put_line('more 2000');
end if;
end;
--pl/sql语句中的if elsif语句
declare
sal1 number(6,2);
begin
select sal into sal1 from emp where lower(ename)=lower('&ename');
if (sal1<2000) then
dbms_output.put_line('less 2000');
elsif (sal1>2000 and sal1<400) then
dbms_output.put_line('between 2000 and 4000');
elsif (sal1>400) then
dbms_output.put_line('more 4000');
else
dbms_output.put_line('other...........');
end if;
end;
--pl/sql语句里面的case语句
declare
a number(2):=0;
begin
a:=&a;
case a
when 10 then
dbms_output.put_line('aaaaaaaaaaa');
when 20 then
dbms_output.put_line('bbbbbbbbbbbb');
else
dbms_output.put_line('other.....');
end case;
end;
--pl/sql语句里面的loop语句
declare
q number :=0;
begin
loop
q:=q+1;
dbms_output.put_line('q='||q);
exit when q=10;
end loop;
end;
--使用if 结束的
declare
q number :=0;
begin
loop
q:=q+1;
dbms_output.put_line('q='||q);
if q=10 then
exit;
end if;
end loop;
end;
--使用 while 循环
declare
q number :=0;
begin
while(q<10)loop
q:=q+1;
dbms_output.put_line('q='||q);
end loop;
end;
--使用 for循环 反向遍历 reverse
declare
begin
for i in reverse 1..10 loop
dbms_output.put_line(i);
end loop;
end;
PLS_INTEGER和BINARY_INTENER唯一区别是在计算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个NUMBER型而不会出错,PLS_INTEGER型的变量将会发生错误。
record 定义类型
集合容器
index_by table
嵌套表
varray
type num_array is table of number(5) index by binary_integer;
单行单列 变量 varchar2 %type
单行多列 record
单列多行 集合 (type)
多行多列 集合(rowtype)
索引表的格式
type name is table of element_type index by key_type;
declare
v_ename emp.ename%type;
v_emp emp%rowtype;
begin
select ename into v_ename from emp where empno=7369;
select * into v_emp from emp where empno=7369;
dbms_output.put_line(v_ename);
dbms_output.put_line(v_emp.sal||' '||v_emp.ename);
end;
--仅输出特殊的结构 使用 record来定义
declare
type emp_record is record(
v_ename emp.ename%type,
v_sal emp.sal%type,
v_deptno emp.deptno%type
);
v_emp_record emp_record;
begin
select ename,sal,deptno into v_emp_record from emp where empno=7369;
--我也可以通过赋值语句修改里面的值
v_emp_record.v_ename:='zhaan';
dbms_output.put_line(v_emp_record.v_ename);
dbms_output.put_line(v_emp_record.v_sal);
dbms_output.put_line(v_emp_record.v_deptno);
end;
--
declare
type num_array is table of number(5) index by binary_integer;
a num_array;
begin
for i in 1..10 loop
a(i):=i;
end loop;
for i in 1..10 loop
dbms_output.put_line(a(i));
end loop;
end;
--例子一
declare
type emp_array is table of emp%rowtype index by binary_integer;
a emp_array;
begin
select * bulk collect into a from emp;
for i in a.first..a.last loop
dbms_output.put_line(a(i).ename||' '||a(i).job);
end loop;
end;
--集合中装有集合
declare
type record1 is record(
vempno emp.empno%type,
vename emp.ename%type,
vsal emp.sal%type
);
type record2 is record(
vdeptno emp.deptno%type,
vrecord record1
);
a record1;
b record2;
begin
select empno,ename,sal into a from emp where empno=7369;
b.vrecord:=a;
dbms_output.put_line(b.vrecord.vempno);
dbms_output.put_line(b.vrecord.vename);
dbms_output.put_line(b.vrecord.vsal);
end;
--
declare
type cc is table of varchar2(20) index by varchar2(20);
a cc;
begin
a('beijing'):='china';
a('dongjing'):='japan';
a('huashengdun'):='usa';
dbms_output.put_line(a('beijing'));
end;
学习pl/sql之一的更多相关文章
- Oracle 学习PL/SQL
先上一张实用的图:用于转义字符的. SQL> select chr(42) ||'is what?' from dual; CHR(42)||---------*is what? 想转义哪个就转 ...
- 使用PL/SQL Developer 学习pl/sql
1.创建表并且插入一些数据 (这里表名为test): 2. New 一个SQL Window敲下如下代码(--为注释部分): declare --declare:用于plsql中的声明变量,和be ...
- Oracle PL/SQL学习之Hello World(0)
1.PL/SQL是Oracle数据库的一大创举,让一些复杂繁琐的常规主流编程代码做的编码处理过程,只需要在PL/SQL中使用简短的几句代码就可以解决,并且准确高效.那么遵循惯例,我们学习PL/SQL编 ...
- Oracle PL/SQL实战代码下载
最近在学习PL/SQL编程,算是一个进阶吧,书没带光盘,所以按照书中的地址去下载样例,无法下载,到图灵官网找到了源代码下载地址,无法下载的留邮箱,我发给大家 下载地址: http://www.itur ...
- Oracle数据库之PL/SQL基础
介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...
- pl/sql编程
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- ORACLE PL/SQL开发--bulk collect的用法 .
刚刚在inthirties老大的博客里看到这篇文章,写的不错,正好自己最近在学习PL/SQL,转过来学习学习. ============================================ ...
- pl/sql 的 put和put_line区别
在学习PL/SQL脚本时,打印语句是用得最多的语句. 在Oracle中,又有两种打印的方法:put和put_line.它们的区别是:put:不换行输出,输出在缓冲区,不显示出来,直到执行put_lin ...
- PL/SQL程序中调用Java代码(转)
主要是学习PL/SQL调用JAVA的方法. 平台:WINDOWS 1.首先使用IDE写好需要调用的java代码,再添加"create or replace and compile java ...
随机推荐
- CodeIgniter Doctrine2基本使用(二)(转)
CodeIgniter Doctrine2基本使用(二) 继上次写的一篇文章<CodeIgniter Doctrine2基本使用(一)>写到操作实体的之通过Channel这个实体向数据库表 ...
- linux-RPM 打包原理 SPEC 编写规范
一.编写spec脚本 由前面的日志了解到,生成rpm除了源码外,最重要的就是懂得编写.spec脚本.rpm建包的原理其实并不复杂,可以理解为按照标准的格式整理一些信息,包括:软件基础信息,以及安装.卸 ...
- 【python3】将视频转换为代码视频
一.环境准备 1.需要安装opencv,直接安装 pip install opencv-python 2.需要安装ffmpeg ,直接解压免安装,下载传送门: 将 ffmpeg.exe 的路径复制,替 ...
- 按键精灵手机版多点找色,图片对比 by <剑行洪荒> 忠哥
代码: Do Dim ret1,ret2 Delay 500 ret1 = CmpColor(76,72, "153274", 0.9) ret2 = Cm ...
- BootStap学习笔记(2)
学习该内容之前可能会用到的内容: css属性Font-Weight:如果数字为700就是加粗的.或者更粗的为bolder,更细的是lighter. html Cite标签定义文档的引用,默认字体以斜体 ...
- django 部署一个简单的博客系统
转:https://www.cnblogs.com/fnng/p/3737964.html 写的目的, 加深影响,熟悉开发流程, 开发都是练出来的. 环境 python3.5 windows 7 1. ...
- Siki_Unity_7-4_高自由度沙盘游戏地图生成_MineCraft_Uniblocks插件(可拓展)
Unity 7-4 高自由度沙盘游戏地图生成 MineCraft (插件Uniblocks) 任务1&2&3&4 素材 && 课程演示 && 课 ...
- 路由器终端常用linux命令汇总(持续更新)
ls:显示文件名与相关属性 ls -al;ls -l;ls -a 第一列: d:表示目录,dir. -:表示文件. l:表示链接文件,linkfile. 接下来的字符三个为一组,且均为rwx这3个字母 ...
- 腾讯云linux+kodexplorer可道云搭建私有云盘
kodexplorer可道云介绍KodExplorer可道云,原名芒果云,是基于Web技术的私有云和在线文件管理系统.致力于为用户提供安全可控.可靠易用.高扩展性的私有云解决方案.用户只需通过简单环境 ...
- linux-shell-screen后台调用-后台运行脚本和命令-仿start命令-伪窗口界面
序 我比较熟练bat.cmd脚本.刚接触使用shell时,总会习惯想用windows窗口界面来套用shell脚本.于是找到screen后台命令,它可以交互shell脚本,保持后台运行.但是在批处理ba ...