Oracle PL/SQL 编程基础 实例
create table mytest(name varchar(20),password varchar(30));
create or replace procedure sp_pro2 is
begin
insert into mytest values('fc','123');
end;
查看错误信息
show error
怎样调用该过程:
1。 exec 过程名 (參数,。。)
2. call 过程名 (參数 )
set server output on
begin
dbms_output.put_line('helloe');
end;
---------------------
declare
v_ename varchar(20);
begin
select ename into v_ename from emp where empno=&aa;
dbms_output.put_line('姓名:'||v_ename);
end;
-----------
create procedure sp_pro3 (spName varchar2,newSal number) is
begin
--运行部分
update emp set sal=newSal where ename=spName;
end;
--dioyong
call sp_pro3('scott','8000');
--------------函数 -------
CREATE or replace function sp_fun1(spName varchar2) return
number is yearsal number(7,2);
begin select sal*12+nvl(comm,0) into yearsal from emp
where ename=spName;
return yearsal;
end;
--diaoyong
var abc number;
call sp_fun1('SCOTT') into : abc;
---------------------------
-------包------------由包规范和包体组成的
--创建一个包sap_pack1
--声明该包有一个过程和一个函数
create or replace package sp_pack1 is
procedure update_sal(spName varchar2,newsal number);
function annual_income(spName varchar2) return number;
end;
--创建包体---
create or replace package body sp_pack1 is
procedure update_sal(spName varchar2,newsal number) is
begin
update emp set sal=newsal where ename=spName;
end;
function annual_income(spName varchar2) return number
is yearsal number(7,2);
begin select sal*12+nvl(comm,0) into yearsal from emp
where ename=spName;
return yearsal;
end;
end;
---调用 ----
call sp_pack1.update_sal('SCOTT',9000);
----------定义并使用变量---================================
-- 标量类型 scalar
v_ename varchar(10);
v_sal number(6,2):=5.4
v_data date;
v_valid boolean not null default false;
---输入员工号。显示 name sal tax
declare
v_tax_rate number (3,2):=0.03;
-- v_ename varchar2(5);
v_ename emp.ename%type;
-- v_sal number(7,2);
v_sal emp.sal%type;
v_tax_sal number (7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
--计算所得税
v_tax_sal:=v_sal*v_tax_rate;
--输出
dbms_output.put_line('name:'||v_ename||'工资'||v_sal ||'交税:'||v_tax_sal);
end;
--复合类型 composite
----pl/sql 记录 类似于高级语言的结构体
--定义一个plsql 记录类型 emp_record_type
declare
type emp_record_type is record (aname emp.ename%type,salary emp.sal%type,title emp.job%type);
--定义了一个 变量 sp_record 这个变量的类型是emp_record_type
sp_record emp_record_type;
begin
select ename,sal,job into sp_record from emp where empno=7788;
dbms_output.put_line('员工名:'||sp_record.aname);
end;
--------pl/sql 表 相当于该机语言里的数组
--定义一个plsql 表类型 emp_table_type
declare
type emp_table_type is table of emp.ename%type index by binary_integer;
sp_table emp_table_type;
begin
select ename into sp_table(0) from emp where empno=7788;
dbms_output.put_line('员工名--》'||sp_table(0));
end;
--參照类型
---1游标变量
--实例一 输入部门号。显示全部的员工姓名和他的工资
declare
--定义游标类型
type sp_emp_cursor is ref cursor;
--定义游标变量
test_cursor sp_emp_cursor;
--定义变量
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
--运行
--把test_cursor 和select 结合
open test_cursor for select ename,sal from emp where deptno=&depno;
--循环取出
loop
fetch test_cursor into v_ename,v_sal;
--推断是否test——cursor 为空
exit when test_cursor%notfound;
dbms_output.put_line('员工名->'||v_ename||'工资->'||v_sal);
end loop;
end;
Oracle PL/SQL 编程基础 实例的更多相关文章
- Oracle Pl/SQL编程基础
Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...
- oracle PL/SQL编程基础知识
在oracle中使用pl/sql来扩展SQL的功能,使得SQL能够更加的灵活,功能更加强大,效率更高.pl/sql让sql也能执行判断,循环等操作.主要记录一下pl/sql的基本语法和基本条件判断语句 ...
- Oracle数据库编程:PL/SQL编程基础
2.PL/SQL编程基础: PL/SQL块: declare 定义部分 begin 执行部分 exception 异 ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- ORACLE PL/SQL编程之八:把触发器说透
原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...
- ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!) 继上篇:ORACLE P ...
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...
- [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)
原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下 ...
随机推荐
- 封装UIlabel 辨别用户名 ,话题 ,链接,电话,高亮文字等
概述 对UIlabel进行封装 用于辨别用户名 ,话题 ,链接,电话,高亮文字等,链接跳转网页,电话点击拨打电话,完美封装UIlabel,适合绝大多数需求 详细 代码下载:http://www.dem ...
- 开源大数据技术专场(上午):Spark、HBase、JStorm应用与实践
16日上午9点,2016云栖大会“开源大数据技术专场” (全天)在阿里云技术专家封神的主持下开启.通过封神了解到,在上午的专场中,阿里云高级技术专家无谓.阿里云技术专家封神.阿里巴巴中间件技术部高级技 ...
- 简单安装MongoDB
前言 首先说明一下环境,以免环境的不同造成不必要的影响 本次采用centos6.8版本linux系统 [root@dev1 ~]# cat /etc/redhat-release CentOS rel ...
- HDUOJ----1114(多重背包)悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- Java JDBC数据库编程
课程 Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL ...
- Oralce进程信息查看,Oracle的锁表与解锁
参考: oracle查看锁表进程,杀掉锁表进程 Oracle的锁表与解锁 查看锁表进程SQL语句: select * from v$session t1, v$locked_object t2 whe ...
- Everything:速度最快的文件名搜索工具
http://xbeta.info/everything-search-tool.htm Everything(官网|中文主页|教程)是速度最快的文件名搜索软件.其速度之快令人震惊,百G硬盘几十万个文 ...
- WCF中可以使用SVCUtil.exe生成客户端代理类和配置文件
1.找到如下地址“C:\Windows\System32\cmd.exe” 命令行工具,右键以管理员身份运行(视系统是否为win7 而定) 2.输入如下命令: C:\>cd C ...
- iOS开发 - 用AFNetworking实现https单向验证,双向验证
https相关 自苹果宣布2017年1月1日开始强制使用https以来,htpps慢慢成为大家讨论的对象之一,不是说此前https没有出现,只是这一决策让得开发者始料未及,博主在15年的时候就做过ht ...
- win7 64 python2 xgboost安装
综述: 首先,关于xgboost是啥,可以看这一篇:机器学习(四)--- 从gbdt到xgboost 安装Python3 环境下的xgboost 可以通过pip install , 在网址中下载对应版 ...