ORACLE存储过程的基本语法

本文介绍了PL/SQL存储过程的基础语法,包括声明、变量定义、常量使用、记录型及引用型变量的实例,展示了如何通过存储过程进行简单的数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--说明部分
declare
--开始
begin
--程序
dbms_output.put_line('Hello ORACLE');
--结束
end;

这样 一个简单的Hello world 就输出出来了BY ORACLE!

PL/SQL存储过程的基本语法

declare
    说明部分
begin
    语句序列(dml语句)
exception
    例外处理语句
end;

常量和变量的定义

 

说明变量(char,varchar2,date,number,boolean,long)

例:

var1                char(15);     定义个一个变量名为var1,长度为15个字符

married           boolean:=true;   定义个一个变量名为married,初始值为ture

psal                 number(7,2);    定义个一个变量名为psal,长度为7,并且有有两位的小数

————————————————————————————————————————————

引用型变量

my_name       TEST_PROCEDURE.NAME%type    变量名为my_name,类型与TEST_PROCEDURE表里的NAME列类型一样

declare 
  pname test_procedure.name%type;
  psal test_procedure.money%type;
begin
  
  select t.name,t.money
    into pname,psal       --往变量注入值 顺序必须一致
    from test_procedure t 
   where t.name = 'XX天';
  
  dbms_output.put_line('名字是:'||pname||',薪水是:'||psal);
end;

记录型变量

emp_rec       TEST_PROCEDURE%rowtype     记录一行的类型,可以理解为一个数组。数组中的每一个元素就是一列。

例:

declare 
  tablerow test_procedure%rowtype;
begin
  
  select *
    into tablerow
    from test_procedure t 
   where t.name = 'XX天';
  
  dbms_output.put_line('名字是:'||tablerow.name||',薪水是:'||tablerow.money);
  
  dbms_output.put_line('职位是:'||tablerow.job||',薪水是:'||tablerow.dept);
  
end;

直接赋予一行的属性,用变量名.列名调用。

定义常量

常量指的是不会变化的量,例如一年四个季度,9月有30天,圆周率等。

语法格式:

<常量名>constant<数据类型>:=<常量值>;

myname constant varchar(4):='sola';

birthday constant number:=92;

 

 

### Oracle 存储过程基本语法 #### 创建存储过程 创建、修改或删除存储过程的操作通过特定的 SQL 语句完成。`CREATE OR REPLACE PROCEDURE` 用来告知 Oracle 数据库创建一个新的存储过程,如果同名的过程已经存在,则会自动覆盖旧版本[^2]。 ```sql CREATE OR REPLACE PROCEDURE procedure_name ( parameter_1 IN datatype, parameter_2 OUT datatype, -- 更多参数... ) IS -- 或者使用 AS 关键字代替 IS BEGIN -- 这里放置 PL/SQL 的逻辑代码块 END; / ``` #### 参数说明 存储过程中可以定义输入 (`IN`) 和输出 (`OUT`) 类型的参数,也可以同时指定两种类型的组合(`IN OUT`)。这些参数允许调用方传递数据给存储过程以及接收返回的结果[^3]。 #### 控制结构 控制流可以通过条件判断来实现复杂业务逻辑处理。例如 `IF...THEN...ELSE` 结构可用于根据不同情况执行不同的操作: ```sql IF condition THEN statement_sequence; ELSIF another_condition THEN alternative_statement_sequence; ELSE final_alternative_statements; END IF; ``` 此外还有循环和其他编程特性支持更复杂的流程管理[^5]。 #### 游标与记录类型变量声明 为了方便批量处理表中的行级数据,在存储过程中经常需要用到游标和基于表格行类型的变量。下面的例子展示了如何声明两个不同来源的数据行对象并对其进行赋值操作[^4]: ```sql DECLARE row01 cursor01%ROWTYPE; row02 TESTTABLE01%ROWTYPE; BEGIN OPEN cursor01; FETCH cursor01 INTO row01; SELECT * INTO row02 FROM TESTTABLE01 WHERE id = some_value; CLOSE cursor01; END; / ``` 上述内容涵盖了构建简单到中级难度级别的 Oracle 存储过程所需的基础知识点和技术细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值