create or replace procedure procedure_name --存储过程名字
(
--进行输入/输出的量 量_name in out 量_类型
--e.g.
username in varchar2,                                  --varchar2类型无需标明长度
id out number(38)
)
is/as
--基本认为is和as是一致的,但是略有区别,在这个部分进行变量和常量的声明       //类似PL/SQL语句块中的declare部分 --变量/常量_name (constant) 1.变量/常量_类型;
-- 2.table_name.col_name%type   //这个变量沿用这个表中的这个列的类型
-- 3._name                      //某个变量需要从外部传入,&**_name作为一个占位符
-- 4.自定义类型 //使用对象的概念理解
-- 5.table_name%rowtype --e.g.
--
i constant number:=5;
username varchar2(40);
--
username tb_user.username%type;
--
username varchar2:=&name;
--
type type_name is record
(
id number(38);
username varchar2(40);
);
type_obj type_name; --(将某行的部分需要的值放进去)使用的时候:select tb.id,tb.username into type_obj from tb_user tb
--
users tb_user%rowtype; --(将某行的值放进去)使用的时候:select * into users from tb_user where id='1'; --声明游标,获取查询语句的结果集(多行多列);   //游标申明中不要使用into子句 cursor cur_name is select col_name,col_name,, from table_name;
--e.g.
cursor temCur is select * from tb_user; begin
--放置sql语句和pl/sql语句块 --赋值
a:=b; --输出语句
dbms_output.put_line(''||''||''); --如果需要显示结果,set serveroutput on --sql语句
--增
insert into table_name(col_name,col_name,,)
values(val_val,val_val,,); --改
update table_name set col_name = val_val; --删
delete from table_name …… --游标
--1.显式游标
--2.隐式游标 select * into emp from table_name …… --打开游标
--open cur_name;
--将游标中的值赋值到某值中
--fetch cur_name into get_name,get_name,,;
--关闭游标
--close cur_name; --游标状态信息
--%isoipen //boolean
--%notfound //
--%found //
--%rowcount //目前为止,总行数 select col_name into temp_name from table_name --将表中的值(一行一列的值)取出放到这个“临时变量中” --循环
--1.
loop
***
exit when ***
end loop; --2.
while ***
loop
***
end loop; --3.
for index in[reverse] ***
loop
***
end loop; --判断
if *** then ***
elsif *** then ***
else ***
end if; --提交事务
commit; exception
--//异常处理
when too_many_rows then
***
when no_data_found then
***
*when others then
***
--rollback;
--commit
end procedure_name; --调用存储过程
exec pro_name(); /*
--使用循环获取游标数据
declare
-- 定义emp类型
emp employees%rowtype;
-- 定义一个游标:拿到所有员工
cursor my_corsor is select * from employees;
begin
-- 打开游标
open my_corsor;
--循环开始打印游标
loop
-- 移动光标并获取相应的数据
fetch my_corsor into emp;
-- 如果没有相应数据则离开
exit when my_corsor%notfound;
-- 没有离开代表有数据,则可以打印展示出来
dbms_output.put_line(emp.first_name||' '|| emp.salary);
end loop;
--关闭游标
close my_corsor;
end; --使用游标的for循环
PL/SQL语言提供了游标的for循环语句。
自动的执行游标的open,fetch和close。
当进入循环后,游标for循环语句会自动的打开游标,并提取第一行数据,
当程序处理完当前数据后,自动提取下一行数据。
当结果集中的内容提取完毕后,自动关闭游标。 格式:
FOR variables IN cursor_name(value,value...) LOOP
--处理语句
END LOOP; declare --定义一个游标:拿到所有员工
cursor my_corsor is select * from employees;
begin
--循环开始打印游标
for emp in my_corsor loop
-- 没有离开代表有数据,则可以打印展示出来
dbms_output.put_line(emp.first_name||' '|| emp.salary);
end loop;
end; */

Oracle存储过程_语法的更多相关文章

  1. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  2. Oracle存储过程基本语法 存储过程

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  3. Oracle存储过程基本语法

    一.形式 1 CREATE OR REPLACE PROCEDURE 存储过程名  //是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 2 IS   ...

  4. (转)Oracle存储过程基本语法

    本文转载自:http://www.cnblogs.com/hero4china/articles/base_rule_oracle_procedure.html 存储过程 1  CREATE OR R ...

  5. Oracle 存储过程_(收集)

    oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字(    参数1 IN NUMBER,    参数2 IN NUMBER) IS变量 ...

  6. Oracle存储过程常用语法及其使用

    1.什么是存储过程 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行.它可以接受参数.输出参数,并可以返回单个或多个 ...

  7. Oracle存储过程基本语法及基础教程

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

  8. Oracle 存储过程简单语法

    一.无参数的存储过程 --创建存储过程create or replace procedure getdate as datetime varchar2(); begin select to_char( ...

  9. Oracle存储过程Procedure语法及案例

    create or replace procedure replace(desstr in varchar2, replacestr in varchar2, tablename in varchar ...

随机推荐

  1. RocketMQ-Filer

    一.搭建RocketMQ集群 我搭建的是2-master no slave模式,所以在${rocketmq}/conf/2m-noslave/下的 brokder-*.properties 中添加 f ...

  2. 【数组】Maximum Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

  3. Android Studio打开项目提示找不到sdk路径的问题。

    问题如图: 这是由于所打开的项目不是本机创建的,所使用的sdk路径不一致所导致. 解决方案: 打开项目所在目录,找到local.properties文件并打开,发现sdk.dir=D\:\\Andro ...

  4. MySQL Optimization 优化原理

    MySQL Optimization 优化原理 MySQL逻辑架构 如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器.下图展示了MySQL的逻辑架构图. ...

  5. 虚拟化明星——深挖轻量级容器docker

    docker是一个轻量级容器,属于操作系统层面的虚拟化技术,封装了文件系统(AUFS)以及网络互联,进程隔离等特性. 传统虚拟化架构: docker虚拟化架构: 可以看出,docker是没有Guest ...

  6. vuex数据管理-数据适配

    由于接口在上线前,不可避免的会出现变动,小则属性名变,大则结构变化.如果处理不当,结构变化时,视图的代码也需要做相应的更改,然后就是容错方法的变动,接着重新自测等,这样,变化成本随着结构的复杂度大大加 ...

  7. For update带来的思考

    For update or not 起源 ​ 之所以想写这个专题,是因为最近在做一个抢占任务的实现.假设数据库很多个任务,在抢占发生之前任务的状态都是FREE.现在假设同时有一堆抢占线程开始工作,抢占 ...

  8. CentOS7下SVN server的安装与配置

    CentOS7通过yum install命令进行安装SVN(参考:http://subversion.apache.org/packages.html#centos) $ yum install su ...

  9. java 生成Excel开门篇

    本随笔的Excel所用的poi jar包(3.17版本)链接: https://pan.baidu.com/s/1gaa3dJueja8IraUDYCSLIQ 提取密码: 9xr7 简单实现:两个类: ...

  10. Idea生成Javadoc

    Idea tools菜单下:Generate Javadoc...,在弹出的对话框中选择指定的包或文件,也可滤掉指定的包或文件.如果有自定义的javadoc标签,则需要在other command l ...