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. 第12章—使用NoSQL数据库—使用MongoDB+Jpa操作数据库

    使用MongoDB+Jpa操作数据库 SpringData还提供了对多种NoSQL数据库的支持,包括MongoDB;neo4j和redis.他不仅支持自动化的repository,还支持基于模板的数据 ...

  2. 前端通信:ajax设计方案(四)--- 集成ajax上传技术 大文件/超大文件前端切割上传,后端进行重组

    马上要过年了,哎,回家的心情也特别的激烈.有钱没钱,回家过年,家永远是舔舐伤口最好的地方.新的一年继续加油努力. 上次做了前端的ajax的上传文件技术,支持单文件,多文件上传,并对文件的格式和大小进行 ...

  3. 自动换行的两种代码(C#)

    最近有个需求,需要将C# winform中的listBox中的内容自动换行, 其实在用listBox前,已经用textBox实现了大部分功能,可惜最后还是有个焦点的问题, 就是textBox中的文字会 ...

  4. C语言中的条件编译

    通常情况,我们想让程序选择性地执行,多会使用分支语句,比如if-else 或者switch-case 等.但有些时候,可能在程序的运行过程中,某个分支根本不会执行. 比如我们要写一个跨平台项目,要求项 ...

  5. Oracle数据库 中的基础的一些语法结构

    方括号里的内容为可选项 大括号是必填 1PL/SQL结构块 DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQ ...

  6. Shell如何解决文件流管道的文本拼接失效问题

    前言: 近期由于业务的需要,需实现通过监控日志文件的内容并定时将日志的有效内容通过邮件进行告警. 文本内容的格式如下: 1 aaa 2 bbb 4 ccc 7 ddd 希望输出: bbb ccc 版本 ...

  7. vue-router参数传递

    1.在vue-router中,有两大对象被挂载到了实例this2.$route(只读.具备信息的对象).$router(具备函数功能)3.查询字符串方式传递参数 1).去哪里 <router-l ...

  8. 读取XML文件(XmlNode和XmlElement区别)

    XmlNode和XmlElement区别.这两个类的功能极其类似(因为我们一般都是在对Element节点进行操作). 1.通过继承关系XmlElement继承自XmlLinkedNode又继承自Xml ...

  9. ShellExecute 启动外部程序 参数详细介绍

    ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件.打开一个目录.打印一个文件等等),并对外部程序有一定的控制. 目录 1基本简介 2原型参数 3返回值 4例子 5特殊用法 ...

  10. jQuery 效果 - 停止动画

    jQuery 停止动画 jQuery stop() 方法用于在动画或效果完成前对它们进行停止. jQuery stop() 方法 jQuery stop() 方法用于停止动画或效果,在它们完成之前. ...