Oracle存储过程_语法
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存储过程_语法的更多相关文章
- Oracle存储过程基本语法介绍
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- Oracle存储过程基本语法 存储过程
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- Oracle存储过程基本语法
一.形式 1 CREATE OR REPLACE PROCEDURE 存储过程名 //是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 2 IS ...
- (转)Oracle存储过程基本语法
本文转载自:http://www.cnblogs.com/hero4china/articles/base_rule_oracle_procedure.html 存储过程 1 CREATE OR R ...
- Oracle 存储过程_(收集)
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量 ...
- Oracle存储过程常用语法及其使用
1.什么是存储过程 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行.它可以接受参数.输出参数,并可以返回单个或多个 ...
- Oracle存储过程基本语法及基础教程
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...
- Oracle 存储过程简单语法
一.无参数的存储过程 --创建存储过程create or replace procedure getdate as datetime varchar2(); begin select to_char( ...
- Oracle存储过程Procedure语法及案例
create or replace procedure replace(desstr in varchar2, replacestr in varchar2, tablename in varchar ...
随机推荐
- ruby:TypeError: 对象不支持此属性或方法(<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolink)
我整理了一下 目前有三种方法,我是windows 7 64位, 答案中很多人是win8也成功了. 方法1:找到当前项目下 app/javascripts/applications.js 把里面的// ...
- 【数组】Find Peak Element
题目: A peak element is an element that is greater than its neighbors. Given an input array where num[ ...
- 冒泡排序——Bubble Sort
基本思想:两个数比较大小,较大的数下沉,较小的数冒起来. 过程: 1.比较相邻的两个数据,如果第二个数小,就交换位置. 2.从后向前两两比较,一直到比较最前两个数据.最终最小数被交换到起始的位置,这样 ...
- sql 获取列名
--查询所有列 select name from syscolumns where id=OBJECT_ID('PTS_ProjectTask') --列转为行 GetColumnJoin 'Proj ...
- Tomcat,JBoss与JBoss Web
最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考. 一.Tomcat Tomcat 服务器是免费开源的Web 应用服务器.支 ...
- 发布Framework 4.0到iis时,出现HTTP 错误 403.14 - Forbidden
新发布MVC到服务器的时候,经常碰到403.14错误,绝大部分的时候都是因为Framework 4.0需要重新注册下,在运行里输入:C:\Windows\Microsoft.NET\Framework ...
- eclipse + maven 环境配置
软件152 余建强 第一步:准备以下软件并进行安装 1. jdk1.7或者以上为最佳: 官方下载地址:http://www.oracle.com/technetwork/java/javase/dow ...
- JAVA-4NIO之Channel之间的数据传输
转载:自并发编程网ifeve.com 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个c ...
- 资料汇总--Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)【转】
开发环境:Tomcat9.0 在使用Ajax实现Restful的时候,有时候会出现无法Put.Delete请求参数无法传递到程序中的尴尬情况,此时我们可以有两种解决方案:1.使用地址重写的方法传递参数 ...
- nginx重启报错:nginx: [error] invalid PID number "" in "/run/nginx.pid"
问题描述:执行 nginx -t 是OK的,然而在执行 nginx -s reload 的时候报错 nginx: [error] invalid PID number “” in “/run/ngin ...