oracle中子程序包括什么,ORACLE PL/SQL子程序

ORACLE PL/SQL子程序

温故而知新,果然如此呀,第二次再翻开同样的内容果然有不同的收获,有些是第一次看的时候没有仔细理解的,还有些可能是在第一次看匆匆就跳过的,当然,可能还有部分是自己当时记住了完了又给忘记了。今天第二次看到子程序这一章节,发现了些新的内容,呵呵。在这里我就写下一些基本内容和容易忘记的,免得下次又给忘了。内容可能不太全面,有点针对我个人哦,呵呵!

1.创建子程序的语法

创建过程

CREATE [OR REPLACE] PROCEDURE procedure_name

[(argument [{IN | OUT| IN OUT}] type,

...

argument [{IN | OUT| IN OUT}] type)]

{IS | AS} --IS和AS没区别

procedure_body

创建函数

CREATE [OR REPLACE] FUNCTION function_name

[(argument [{IN | OUT| IN OUT}] type,

...

argument [{IN | OUT| IN OUT}] type)]

RETURN return_type {IS | AS} --IS和AS没区别

procedure_body

2.参数模式

IN

调用过程的时候,实际参数的值就会传递到该过程中。在过程内部,形式参数就像PL/SQL的常量一样--它会被看作是只读且不能修改的。当过程执行完毕,程序的控制返回到调用环境的时候,实际参数的值不会有任何变化。

OUT

调用过程的时候,会忽略所有实际参数的值。在过程内部,形式参数就像未初始化的PL/SQL变量一样,也会有一个NULL值。形式参数的值既可以读取,也可以写入。过程执行完成以后,控制就会返回到调用环境,同时会将形式参数的值赋给实际参数。

IN OUT

这是IN和OUT的复合模式。调用过程的时候,实际参数的值会传递到过程中。在过程内部,形式参数就像初始化以后的变量,可以读取和写入。过程结束以后,控制会返回到调用环境,同时会将形式参数的内容分配给实际参数。

3.以传值和传引用的方式传递参数

传递子程序参数的方式有两种--传值和传引用。当以引用的方式传递参数的时候,就将指向实际参数的一个指针传递到相应的形式参数。另一方面,当以传值的方式传递参数的时候,就将实际参数的值复制到相应的形式参数。以引用的方式传递参数通常会更快,因为它避免了复制。对集合类型的参数而言,这表现更加明显,因为集合类型的数据一般都非常多。

默认情况下,PL/SQL对IN参数都使用传引用的方式,而对IN OUT和OUT参数都使用传值的方式。

1)NOCOPY的使用方法

parameter_name [mode] NOCOPY datatype

其中parameter_name是参数的名称,mode是参数模式,而datatype

相关文档:

今天在网上上看见一篇“将SQL查询结果转化为pojo对象的”博客,博主自定义做了一个类如下:

import java.lang.reflect.Field;

import java.util.List;

import org.hibernate.HibernateException;

import org.hibernate.property.ChainedPropertyAccessor;&n ......

通配符 说明

_    与任意单字符匹配

%    与包含一个或多个字符的字符串匹配

[ ]  与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配。

[^]  与特定范围(例如,[^a-f])或特定集(例如,[^abcdef])之外的任意单字符匹配。 ......

select gztzid,

gztztt,

gztzbt,

gztznr,

fslxmc,

decode(fsfs, '0', '无需回复', '1', '需要回复') fsfs,

&nb ......

USE AdventureWorks

GO

CREATE PROC spEmployee

AS

SELECT * from Humanresources.Employee

EXEC spEmployee

ALTER PROC spEmployee

AS SELECT EmployeeID from Humanresources.Employee

drop proc spEmployee

ALTER PROC spEmployee

@LastName nvarchar(50) = NULL

AS

IF @LastName IS NULL

SELECT * f ......

此部分内容创建一个轻量级T-SQL测试套件,总共有3个脚本:

用于创建测试平台数据和待测存储过程的脚本

--======================

--makeDbTestAndResults.sql

use master

go

if exists (select * from sysdatabases where name = 'DbTestAndResults')

drop database makeDbTes ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值